Nginx里的root/index/alias/proxy_pass的意思

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

相关文章
相关标签/搜索