[转帖]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指令

①   案例一  简单

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

 ②   案例二  复杂

二  alias

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

nginx配置alias时加不加/

alias时里面加/,外面就要加/;里面不加外面也不能加;alias代理的时整个完整路径,包括最后的/. location /user {       alias    /image/user;       autoindex on;  }    #或者# location /user/ {        alias   /image/user/;        autoindex on;  }
复制

①  普通

1)最简单

$uri: /v1/mnt.html location:/v1/ alias: /usr/share/nginx/html/ 最终路径:/usr/share/nginx/html/mnt.html 解读:'location中'映射的就是'alias'
复制

 2)稍微复杂

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

②  重复

++++++++++++++  "等价"  ++++++++++++++ location /v2/ {  root /usr/share/nginx/html;}
复制

③   正则测试

三    alias和root的小结

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

在location中使用root和alias

 四    $document_root

1、'当前请求'下["一般uri是对应location下"] 2、由于'alias'作用域是location,如果location定义了'alias',则是alias值 备注:如果'alias''root'同一作用域同时存在,'谁再后'谁生效 3、如果'location'都没有定义'root''alias',则继承'root',是'父'root的值 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防盗