文章目录
-
-
-
- 一、语法说明
- 二、试验论证
- 三、经验总结
-
-
一、语法说明
-
alias
-
采用
alias
配置的资源目录必须是准确的。localtion
正则匹配到path
后,直接在alias
定义的目录下查找。 -
采用
alias
标签配置资源路径的localtion
块中不能使用rewrite
的break
。 -
采用
alias
标签配置的资源目录后面必须要加上/
符号。
-
-
root
-
采用
root
配置资源目录,实际资源目录必须设置为localtion
正则匹配的path
关键字的上一级目录。 -
这个
path
正则匹配的关键字也必须是root
后面定义路径中真实存在的资源目录,因为localtion
正则匹配到path
后,根据root
再带上path
本身资源路径名称去查找资源。
-
P.S
-
采用
alias
配置的资源目录,localtion
正则匹配的path
关键字后面不带/
符号,那么请求访问这个path
的url
地址中带不带/
都不会影响访问,因为此机制在访问的时候,Nginx
会自动加上/
-
采用
alias
配置的资源目录,localtion
正则匹配的path
关键字后面带上/
符号,那么请求访问这个path
的url
地址中必须带上/
,因为此机制Nginx
不会自动加上/
,如果不手动加上/
,那么在访问的时候就会出现404
,所以建议localtion
正则匹配的path
关键字后面不带/
符号,要求alias
标签配置的资源目录后面必须要加上/
符号 -
采用
root
配置的资源目录,localtion
正则匹配的path
后面带不带/
都不会影响访问
二、试验论证
-
前置约定
假设
Nginx
配置的域名为www.rambo123.com
-
资源目录文件夹的名称和
path
一致示例一
location /shop/ { alias /opt/web/shop/;index index.html index.htm; }
以上通过
alias
配置资源目录,访问www.rambo123.com/shop/index.html
实际指定的是/opt/web/shop/index.html
P.S
alias
指定的资源目录后面必须要加上/
,否则无法访问示例二
采用
root
改造示例一localtion /shop/ { root /opt/web/;index index.html index.htm; }
以上通过
root
改造示例一的配置以后,达到的访问效果一致。通过root
配置资源目录,访问www.rambo123.com/shop/index.html
实际指定的是/opt/web/shop/index.html
-
资源目录文件夹的名称和
path
不一致示例三
localtion /web/ { alias /opt/www/html/;index index.html index.htm; }
以上通过
alias
配置资源目录,访问www.rambo123.com/web/index.html
实际指定的是/opt/www/html/index.html
示例四
采用
root
改造示例三如果非要采用
root
指定资源的方式来改造示例三,就只能通过软连的方式来实现# 为 html 创建软链接(保持 /opt/www/html 与 /opt/www/web 内容一致) ln -s /opt/www/web /opt/www/html # 在进行 root 的配置 lcation /web/ { root /opt/www/;index index.html index.htm; }
三、经验总结
-
在
localtion /
中配置root
目录 -
在
location /path
中配置alias
虚拟目录