叙述
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