nginx给websocket页面做代理

背景

某一产品部署在Aip上,页面打开体现Aip:http://10.20.30.40:1234/inside/html#信息,但需求方让用同域下的F5地址Bip:10.200.300.400,对外体现为:http://10.200.300.400:1234/outside/html#。目前已做好Bip的代理,但在对Aip页面及Bip页面对比发现,代理后的地址Bip有一模块显示有问题。

对背景中Aip给Bip代理的代码如下,参考。

location /outside/html#{
proxy_pass http://10.20.30.40:1234/inside/html#;
}

打开F12开发者模式排查。

  1. 点击network发现很多接口都标红报错,接口红色异常,把url代理。
  2. F12页面已无红色异常项,但页面展示仍有问题,查看当前页面调用接口,有websocket
  3. 点击websocket接口,虽然没有标红异常,但是看到messages未显示信息且报404。点击console,发现有红色报错,failed to load resource:the server responded with a status of 404(),定位到要给websocket做代理。

给websocket接口做代理。

如报错接口为:ws://10.200.300.400:1234/x/websocket
在nginx增加代理如下:
location /x/websocket{
rewrite^/x/websocket/(.*)$ / $1 break;
proxy_pass http://10.200.300.400:1234/x/websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_connect_timeout 1800s;
proxy_send_timeout 1800s;
proxy_read_timeout 1800s;
}

格式

location /x/websocket{//此处/后的内容建议与url中ws地址端口后的一致
rewrite^/x/websocket/(.*)$ / $1 break;
proxy_pass http://此处为url中完整的ws地址, 如X.X.X.X:XXXX/x/websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_connect_timeout 1800s;
proxy_send_timeout 1800s;
proxy_read_timeout 1800s;
}

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值