root和alias都可以定义在location模块中,都是用来指定请求资源的真实路径,比如:
|
1 2 3 |
location /i/ { root /data/w3; } |
请求 http://foofish.net/i/top.gif 这个地址时,那么在服务器里面对应的真正的资源
是 /data/w3/i/top.gif文件
注意:真实的路径是root指定的值加上location指定的值 。

而 alias 正如其名,alias指定的路径是location的别名,不管location的值怎么写,资源的 真实路径都是 alias 指定的路径 ,比如:
|
1 2 3 |
location /i/ { alias /data/w3/; } |
同样请求 http://foofish.net/i/top.gif 时,在服务器查找的资源路径是: /data/w3/top.gif

1、 alias 只能作用在location中,而root可以存在server、http和location中。
2、 alias 后面必须要用 “/” 结束,否则会找不到文件,而 root 则对 ”/” 可有可无。
假如服务器路径为:/home/imooc/files/img/face.png
配置的时候为:
|
1 2 3 |
location /imooc { root /home } |
用户访问的时候请求为:url:port/imooc/files/img/face.png
配置的时候为:
|
1 2 3 |
location /hello { alias /home/imooc } |
用户访问的时候请求为:url:port/hello/files/img/face.png,如此相当于为目录imooc做一个自定义的别名。