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

1.【alias】

别名配置,用于访问文件系统,在匹配到location配置的URL路径后,指向【alias】配置的路径。如:(注意alias配置最后一定要有/,而root可以没有)

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】

反向代理配置,用于代理请求,适用于前后端负载分离或多台机器、服务器负载分离的场景,在匹配到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/路径)。

location /test/ 
{ 
proxy_pass http://127.0.0.1:8080; 
}

即:请求/test/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/test/1.jpg(附加/test/路径)。

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的不是正在工作的,差点还以为这个配置不是这样的;

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx中,rootproxy_passalias是用于配置反向代理和处理请求路径的关键指令。 首先,root指令用于设置请求的根目录。当一个请求到达Nginx时,Nginx会根据请求的URL路径去寻找对应的文件或目录。通过root指令,可以指定请求的根目录,Nginx会以该目录作为基准去查找请求的资源。 中的例子展示了root的用法。在这个例子中,当请求的路径是/html2时,Nginx会在/usr/local/nginx/目录下寻找对应的资源。 接下来是proxy_pass指令,它用于设置反向代理的目标地址。当一个请求到达Nginx时,Nginx会将该请求转发到proxy_pass指定的目标服务器上,并将响应返回给客户端。这可以用于实现负载均衡或者将请求转发给其他服务器处理。 中的例子展示了proxy_pass的用法。在这个例子中,当请求路径是/html2时,Nginx会将请求转发到http://localhost:8080上进行处理。 最后是alias指令,它用于配置请求路径的别名。当一个请求到达Nginx时,alias指令会将请求路径中匹配到的部分剔除,并将剩余部分拼接到alias指令后面的路径中去寻找资源。 中的例子展示了alias的用法。在这个例子中,当请求路径是/api1时,Nginx会将路径中的/api1剔除,并在root后面拼接剩余部分,然后在/usr/local/nginx/目录下寻找对应的资源。 综上所述,root指令用于设置请求的根目录,proxy_pass指令用于设置反向代理的目标地址,alias指令用于配置请求路径的别名。这些指令可以根据实际需求来配置Nginx,实现灵活的请求处理和代理转发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值