nginx反向代理proxy_pass URL中加URI与不加URI的区别

1、简单说明

proxy_pass URL ,URL中是否含有URI,如果不包含,那么nginx服务器不会改变原地址的URI;如果包含了URI,则nginx服务器会使用新的URI替换原来的URI。来瞅瞅下面两个例子你就明白了。

如图在端口为18011的服务器上有 location模块的/admin/url 路由。

server {
        listen 18011;
        server_name location;
        
        location /admin/url{
            proxy_pass http://127.0.0.1:18012;

        }
 }

另一个服务器为18012有两个location模块路由。

server {
        listen 18012;
        server_name location; 
        
        location /admin/url {
          echo "this is /admin/url .";
        }
        
        
        location /url/test {
         echo "this is /url/test .";
        }
}

我们基于上面两个虚拟服务来进行测试。

2、proxy_pass URL 中不加URI

我们将18011的location模块的proxy_pass 代理到18012服务器.

server {
        listen 18011;
        server_name location;
        
        location /admin/url{
            proxy_pass http://127.0.0.1:18012;

        }
 }

通过浏览器访问 http://192.168.60.128:18011/admin/url 地址:
在这里插入图片描述
查看nginx访问日志信息如图:
在这里插入图片描述
可以看到原始请求URI没有改变。

3、proxy_pass URL 中加上URI

我们在18011的location模块的proxy_pass URL中加入URI,并将其代理到18012服务器。

server {
        listen 18011;
        server_name location;

        location /admin/url{
             proxy_pass http://127.0.0.1:18012/url/test;

        }
}

通过浏览器访问同一地址: http://192.168.60.128:18011/admin/url
在这里插入图片描述
查看nginx的访问日志信息:
在这里插入图片描述
我们可以发现在proxy_pass URL中加入URI后原始请求的URI被替换成了proxy_pass URL中的URI。

总结:在使用proxy_pass指令的时候,如果你想改变原地址中的URI,就只需在proxy_pass URL中加上URI。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值