nginx作为代理服务器,可以配置多个location,通过访问不同路径来访问不同目录。
配置
1 | server { |
内容
在music内放置文件 111.mp3
在video内放置文件 222.mp4
访问
http://localhost/
http://localhost/music/111.mp3
http://localhost/video/222.mp4
区别
alias与root的区别:alias与root指定的url意义不同
root和alias都可以定义在location模块中,都是用来指定请求资源的真实路径,比如:
location /music/ {
root /data/file;
}
请求 http://localhost/music/111.mp3 时,那么在服务器里面对应的真正的资源是:/opt/data/file/music/111.mp3,
注意:root真实路径是root指定的值加上location指定的值。
而 alias 正如其名,alias指定的路径是location的别名,不管location的值怎么写,资源的真实路径都是 alias 指定的路径,比如:
location /music/ {
alias /data/file/;
}
请求 http://localhost/music/111.mp3 时,那么在服务器里面对应的真正的资源是:/opt/data/file/111.mp3,
注意:alias真实路径是alias指定的值,不包含location指定的值了。
扩展
在一个location中,alias可以存在多个,但是root只能有一个,
alias只能存在与location中,但是root可以用在server、http和location中,
alias后面必须要“/”结束,否则会找不到文件,而root的“/”可有可无,