nginx指定文件路径有两种方式root
和alias
root
语法: root path;
默认值:root html;
配置段:http、server、location、if
alias
语法: alias path;
配置段:location
root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换
location路径
alias是一个目录别名的定义,root则是最上层目录的定义。还有一个重要的区别是alias后面必须要用"/"
结束,否则会找不到文件的。。。而root则可有可无
下面我们来做个试验:
我的目录结构
└── workspace
├── dir
└── www
└── test
├── html
│ └── a.html //文件内容 I am a html file in html
└── otherhtml
└── a.html //文件内容 I am a html file in otherhtml
nginx配置root实例
server {
listen 80;
server_name test.html.com;
location ^~ /test/html/ {
root /workspace/www;
}
}
http://test.html.com/test/html/a.html //I am a html file in html
nginx配置alias实例
server {
listen 80;
server_name test.html.com;
location ^~ /otherhtml/ {
alias /workspace/www/test/otherhtml/;
}
}
Otherhtml 后面的
/
千万不能省略
http://test.html.com/otherhtml/a.html //I am a html file in otherhtml
网友评论