PHP Ratchet NGINX 失败 WebSocket 连接握手错误响应代码 : 502

标签 php nginx websocket wss ratchet

有没有人成功拿到php ratchet使用 WSS 与 NGINX 一起工作的库。我真的很挣扎。我的 Ratchet 服务器在端口 8081 上运行。我可以确认套接字服务器正在监听端口 8081,并且我可以使用 ws 协议(protocol)毫无问题地进行连接。var conn = new WebSocket('ws://connect.mydomain.net:8081');现在要配置 WSS 并让 NGINX 代理到这个,我有以下 NGINX 配置


    map $http_upgrade $connection_upgrade {
        default Upgrade;
        '' close;
    }

    upstream socket{
        server localhost:8081;
        #server connect.mydomain.net:8081;
    } 

    location /ws/ {
            #proxy_pass "http://socket";
            proxy_pass "https://connect.mydomain.net:8081";
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_set_header Host $host;
            proxy_redirect off;
            proxy_send_timeout 86400s;
            keepalive_timeout 86400s;
            proxy_buffers 8 32k;
            proxy_buffer_size 64k;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            reset_timedout_connection on;
        }

然而,当我尝试使用连接var conn = new WebSocket('wss://connect.mydomain.net/ws/');我失败了:WebSocket 握手期间出错:意外的响应代码:502
任何人都可以直接突出显示我可能做错的任何事情吗?
谢谢

最佳答案

就我而言,问题是 SELinux 不允许出站连接
运行以下解决了我的问题...
setebool -P httpd_can_network_connect 1
似乎很明显,所有关于她的类似问题的文档似乎都忽略了

关于PHP Ratchet NGINX 失败 WebSocket 连接握手错误响应代码 : 502,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65061057/

相关文章:

php - 在flutter中获取JSON数据将返回NULL

php - 试图拉入此查询中的第二条记录

swift - vapor:地址已在使用中(错误号:98)

javascript - SSL 破坏了 socket.io

javascript - 多个 websocket 连接

node.js - 比较 MMO 的 Now.js 和 Socketstream 可扩展性

node.js - websocket.io 正在引发未定义错误的方法

php - array_combine 可能有不相等数量的元素吗? Foreach 的替代品?

php - Yii2 - 如何强制响应 JSON 格式化程序使用对象而不是数组?

caching - Nginx 缓存 : tag-based cache-busting like Varnish Hashtwo