[转帖]nginx(三十四)root和alias指令辨析

nginx,三十四,root,alias,指令,辨析 · 浏览次数 : 0

小编点评

**一、案例一:简单** ```nginx $uri: /resource/href.html location: /resource -- 强调:location只能匹配uri,不能匹配参数 资源路径:/usr/share/nginx/html/resource/href.html 最终资源路径:是'root'指定的值'+'匹配对应location的'$uri'值 只有使用$request_uri才能获取'完整'的链接 **二、案例二:复杂** ```nginx $uri: '/v1/[\"location中\"]'test/mnt.html location: /v1/ alias: /usr/share/nginx/html/ 最终路径:'/usr/share/nginx/html/[\"实际\"]test/mnt.html location中映射的就是'alias'值 ``` **三、案例三:重复** ```nginx \"等价\" location /v2/ { root /usr/share/nginx/html; } ``` **四、案例四:正则测试** ```nginx  三    alias和root的小结 [1]. root与alias'主要区别'在于nginx如何'解释'location后面的uri [2] ```

正文

一    root指令

①   案例一  简单

  1. $uri'/resource/href.html'
  2. location:'/resource'
  3. -- 强调:location'只能'匹配uri,'不能'匹配'参数'
  4. 最终'资源'文件:/usr/share/nginx/html/resource/href.html
  5. 最终os的'资源路径':是'root'指定的值'+'匹配对应location的'$uri'
  6. ++++++++++ 只有使用$request_uri 才能获取'完整'的链接 ++++++++++
  7. if ($request_uri ~* ^/Handler/FileHandler.ashx\?([^_]+)(_[0-9]+)$) {
  8. set $m1 $1;
  9. rewrite ^/Handler/FileHandler.ashx /Handler/FileHandler.ashx?$m1? permanent;
  10. }
  11. 增强认知:'$request_uri'为什么不记录'锚点[#]'信息,因为'浏览器根本没''锚点'发送给服务器

 ②   案例二  复杂

二  alias

  1. 1. alias会把location后面'配置的路径'丢弃掉
  2. 2. 把当前匹配到的目录'指向'到指定的目录
  3. 3. 而 alias 正如其名,alias指定的路径是'location的别名',不管location的值怎么写,资源的'真实路径'都是 alias 指定的路径

nginx配置alias时加不加/

  1. alias时里面加/,外面就要加/;里面不加外面也不能加;alias代理的时整个完整路径,包括最后的/.
  2. location /user {
  3. alias /image/user;
  4. autoindex on;
  5. }
  6. #或者#
  7. location /user/ {
  8. alias /image/user/;
  9. autoindex on;
  10. }

①  普通

1)最简单

  1. $uri: /v1/mnt.html
  2. location:/v1/
  3. alias: /usr/share/nginx/html/
  4. 最终路径:/usr/share/nginx/html/mnt.html
  5. 解读:'location中'映射的就是'alias'

 2)稍微复杂

  1. $uri: '/v1/["location中"]'test/mnt.html
  2. location:/v1/
  3. alias: /usr/share/nginx/html/
  4. 最终路径:'/usr/share/nginx/html/["实际"]'test/mnt.html
  5. 解读:'location中'映射的就是'alias'数值
  6. 深刻理解:'alias''location'是一一'映射'的,alias是location的'别名'

②  重复

  1. ++++++++++++++ "等价" ++++++++++++++
  2. location /v2/ {
  3. root /usr/share/nginx/html;
  4. }

③   正则测试

三    alias和root的小结

  1. [1]. root与alias'主要区别'在于nginx如何'解释'location后面的uri
  2. [2]. 这会使两者分别以'不同的方式'将请求'映射''服务器资源文件'

在location中使用root和alias

 四    $document_root

  1. 1、'当前请求'下["一般uri是对应location下"]
  2. 2、由于'alias'作用域是location,如果location定义了'alias',则是alias
  3. 备注:如果'alias''root'同一作用域同时存在,'谁再后'谁生效
  4. 3、如果'location'都没有定义'root''alias',则继承'root',是'父'root的值
  5. 4、如果'location定义root',则是'覆盖父root',

①  测试

说明:揉和到一个'配置中'测试

②  测试1

③  测试2

④  测试3

与[转帖]nginx(三十四)root和alias指令辨析相似的内容:

[转帖]nginx(三十四)root和alias指令辨析

一 root指令 ① 案例一 简单 $uri:'/resource/href.html' location:'/resource' -- 强调:location'只能'匹配uri,'不能'匹配'参数' 最终'资源'文件:/usr/share/nginx/html/resource/href.html

[转帖]Centos7 nginx访问日志文件割接

一、yum安装nginx 二、各文件路径( /etc/nginx/nginx.conf) 1、访问日志路径:access_log /var/log/nginx/access.log main; 2、pid路径:pid /run/nginx.pid 三、脚本 1、创建脚本 [root@localhos

[转帖]nginx(三十二)rewrite模块

一 官方rewrite模块 ① 模块涉及的指令 ② 基本简介 rewrite模块会根据'PCRE正则'匹配'重写URI' pcre下载地址 pcretest测试正则表达式 ③ break 疑惑点: 结束'该作用域'下剩余的指令,还是'只是该rewrite模块的'指令? 1)配置demo 2)不带参数

[转帖]Nginx Rewrite重写功能

目录 一、rewrite的概述1.1、概述1.2 跳转场景1.3 跳转实现1.4 Rewrite实际场景 二、常用的nginx正则表达式三、rewrite命令3.1 rewrite的语法格式3.2 fiag标记说明 四、location4.1 location大致分为三类4.2 location 常

[转帖]nginx的Mainline version、Stable version、Legacy version的版本区别

https://blog.csdn.net/zwjzwj520520/article/details/62883317 Nginx官网提供了三个类型的版本Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生

[转帖]nginx版本区别

https://www.easck.com/cos/2020/0801/567085.shtml 生产环境使用Stable version:最新稳定版。 注意各版本的区别:Nginx官网提供了三个类型的版本 1、Mainline version:Mainline 是 Nginx 目前主力在做的版本,

[转帖]Nginx中的Rewrite的重定向配置与实践

https://www.cnblogs.com/tugenhua0707/p/10798762.html 阅读目录 一:理解地址重写 与 地址转发的含义。 二:理解 Rewrite指令 使用 三:理解if指令 四:理解防盗链及nginx配置 简介:Rewrite是Nginx服务器提供的一个重要的功能

[转帖]@nginx多server及使用优化(php)

文章目录​ ​一、nginx多server优先级​​​ ​二、禁止IP访问页面​​​ ​三、nginx的包含include​​​ ​四、nginx 路径的alias和root​​​ ​1.配置​​​ ​2.总结​​​ ​五、nginx的try_files​​​ ​1.配置try_files​​​ ​

【转帖】nginx变量使用方法详解-6

https://www.diewufeiyang.com/post/580.html Nginx 内建变量用在“子请求”的上下文中时,其行为也会变得有些微妙。 前面在 (三) 中我们已经知道,许多内建变量都不是简单的“存放值的容器”,它们一般会通过注册“存取处理程序”来表现得与众不同,而它们即使有存

[转帖]Nginx优化与防盗链

目录 一、配置Nginx隐藏版本号1、第一种方法修改配置文件2、第二种方法修改源码文件,重新编译安装 二、修改Nginx用户与组三、配置Nginx网页缓存时间四、实现Nginx的日志分割五、配置Nginx实现连接超时六、更改Nginx运行进程数七、配置Nginx实现网页压缩功能八、配置Nginx防盗