谷姐:我们都是谷歌迷
We are all Google fans

关于nginx反向代理ws配置疑问-KusakabeSi

Rate this post

大家好,我也遇到这个问题
https://**blogs.com/Irving/p/10725867.html

他的解决方法是单独配置 websocket 的地址

熟悉nginx配置大佬们,能不能不单独配置 websocket 的地址
只有侦测到客户端带的请求头有 upgrade,才传给上游呢?

热议
推荐楼 dunce

    location / {
    if ($http_upgrade = websocket) {
    proxy_set_header Upgrade $http_upgrade;
    proxy_pass http://127.0.0.1:2222;
    }
    ...
    }

2楼 jqbaobao 昨天23:24

被和谐了,不过你可以全局ws不是更快乐

3楼 G.K.D 昨天23:25

没看明白你要说的意思。

你的意思是,如果头部带有 upgrade 标识,就反代传到上游服务器。如果没有,就不反代?

另外,你这个链接。。。

5楼 KusakabeSi 7小时前

没看明白你要说的意思。

你的意思是,如果头部带有 upgrade 标识,就反代传到上游服务器。如果没有,就不 ...

就正常反代。

因为全部都加上upgrade请求头,上游服务器会400 bad request

6楼 KusakabeSi 7小时前

地址应该是https://c_nblogs.com/Irving/p/10725867.html这都算敏感字,酵死人了

太感谢了!我试试

7楼 hcyme 5小时前

试试看看过程

8楼 POMAH 1小时前

感谢二楼大佬分享,收藏了。

这个 map 的作用就是客户端头部带 upgrade 就向上游发 upgrade,不带就不发,这样就满足你要求了。
如果 $http_upgrade 有内容,那么 $connection_upgrade 就等于 upgrade,反之就等于 ''。

反向代理 location 里加上这个

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

如果带 upgrade 实际发送的头部是:

    Upgrade websocket;
    Connection upgrade;

如果不带 upgrade 实际发送的头部是:

    没有~

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

未经谷姐允许不得转载:谷姐靓号网 » 关于nginx反向代理ws配置疑问-KusakabeSi
分享到: 生成海报

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

买Google Voice认准【谷姐靓号网】

Google Voice靓号列表Google Voice自助购买
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活