nginx中proxy_pass的作用以及注意事项(不看后悔一生)

一 proxy_pass的作用

格式很简单: proxy_pass URL;

proxy_pass http://www.xxx.com/;
proxy_pass http://192.168.200.101:8080/uri;
proxy_pass unix:/tmp/www.sock;

二 proxy_pass的注意案例

案例描述:

假设 nginx服务器的域名为:www.xxx.com

后端服务器为:192.168.1.10

当请求http://www.xxx.com/aming/a.html的时候,以上示例分别访问的结果是

2.1  不以("/")结尾

访问:http://www.xxx.com/aming/a.html

location /aming/
{
    proxy_pass http://192.168.1.10;
    ...
}
=======》被代理的完整地址为: http://192.168.1.10/aming/a.html

总结:如果没有/,则会把匹配的路径部分(location后面/aming/)也给代理走

2.2  以("/")结尾

访问:http://www.xxx.com/aming/a.html

location /aming/
{
    proxy_pass http://192.168.1.10/;
    ...
}
=======》被代理的完整地址为: http://192.168.1.10/a.html

总结:当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走。

2.3  以("xxx/")结尾

访问:http://www.xxx.com/aming/a.html

location /aming/
{
    proxy_pass http://192.168.1.10/linux/;
    ...
}
=======》被代理的完整地址为: http://192.168.1.10/linux/a.html

总结:当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走。

2.4  以("xxx")结尾

访问:http://www.xxx.com/aming/a.html

location /aming/
{
    proxy_pass http://192.168.1.10/linux;
    ...
}
=======》被代理的完整地址为: http://192.168.1.10/linuxa.html

总结:这种情况比较危险,一定要避免

2.5 总结

为了方便记忆和规范配置,建议所有的 proxy_pass 后的url都以“/”结尾。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值