【问题标题】:PHP Ratchet NGINX Failed WebSocket connection handshake error response code: 502PHP Ratchet NGINX Failed WebSocket 连接握手错误响应代码:502
【发布时间】:2021-03-11 15:16:39
【问题描述】:

有没有人成功地让php ratchet 库使用 WSS 与 NGINX 一起工作。我真的很挣扎。我的棘轮服务器在 8081 端口上运行。我可以确认套接字服务器正在侦听 8081 端口,并且我可以使用 ws 协议毫无问题地连接。

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

任何人都可以直接突出显示我可能做错的任何事情吗?

谢谢

【问题讨论】:

    标签: php nginx websocket wss ratchet


    【解决方案1】:

    在我的情况下,问题是 SELinux 不允许出站连接

    运行以下解决了我的问题...

    setsebool -P httpd_can_network_connect 1

    似乎很明显,所有关于她的类似问题的文档似乎都忽略了

    【讨论】:

      猜你喜欢
      • 2020-09-19
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 2019-11-26
      • 2020-04-14
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多