1.【alias】html
别名配置,用于访问文件系统,在匹配到location配置的URL路径后,指向【alias】配置的路径。如:nginx
location /test/ { alias /home/sftp/img/; }
即:请求/test/1.jpg(省略了协议与域名),将会返回文件/home/sftp/img/1.jpg。后端
2.【root】服务器
根路径配置,用于访问文件系统,在匹配到location配置的URL路径后,指向【root】配置的路径,并把location配置路径附加到其后。如:网络
location /test/ { root /home/sftp/img/;
}
即:请求/test/1.jpg(省略了协议与域名),将会返回文件/home/sftp/img/test/1.jpg,相较于alias,使用root会把/test/附加到根目录以后。测试
3.【proxy_pass】.net
反向代理配置,用于代理请求,适用于先后端负载分离或多台机器、服务器负载分离的场景,在匹配到location配置的URL路径后,转发请求到【proxy_pass】配置的URL,是否会附加location配置路径与【proxy_pass】配置的路径后是否有"/"有关,有"/"则不附加,如:代理
location /test/ { proxy_pass http://127.0.0.1:8080/; }
即:请求/test/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/1.jpg(未附加/test/路径)。code
location /test/ { proxy_pass http://127.0.0.1:8080; }
即:请求/test/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/test/1.jpg(附加/test/路径)。htm
location /test/ { proxy_pass http://127.0.0.1:8080/img; }
即:请求/test/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/img1.jpg(未附加/test/路径,但附加了/test/以后的路径)。
4.【index】,通常有这样的配置:
location / {
root html;
index index.html index.htm;
}
注意,这里的root后面没有跟绝对路径,即前面没有/xxx这种写法,因此它指的是nginx根目录下的html;
即假设请求http://localhost/test/uu.html匹配的是这个规则,那么nginx会从根据是root是得知是访问文件系统(而非访问其余网络,能够理解为此时的nginx是正向代理),而后判断html前面没有/或者是如C:这样的用于描述绝对路径的写法,说明这个路径是相对于nginx根目录下的html目录,因此最终是从html里找test目录下的uu.html文件返回;
这里的index是当好比请求http://localhost时默认其实在nginx里是http://localhost/index(可是若是客户端这么写则nginx会认为是找绝对文件index因此会提示找不到),因此这里的index其实就是指示当是index时优先从niginx目录下的html目录里找index.html返回,没有才找index.htm返回;
不过要注意看nginx是否启动了多个,本身以前测试的时候nginx启动了多个致使reload的不是正在工做的,差点还觉得这个配置不是这样的;
参考:https://blog.csdn.net/zhangliangzi/article/details/78257593