nginx 无法使用SSL证书将WebSocket与wss连接

s8vozzvw  于 2023-03-17  发布在  Nginx
关注(0)|答案(1)|浏览(294)

我从letsencrypt添加了SSL证书,并使用Nginx进行了配置,但无法使用WSS连接到WebSocket。如果将配置更改为WS,它将正常工作。
以下是配置文件

cwdobuhd

cwdobuhd1#

开始测试一下你的WebSocket服务器是否可以和PieSocket websocket tester一起工作,你可以使用他们的chrome扩展来测试ws版本。
然后编辑你的nginx配置,并尝试以下,它为我工作:

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

location / {
            proxy_pass http://channels-backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_redirect off;
            proxy_read_timeout 86400s;
            proxy_send_timeout 86400s;
            keepalive_timeout 86400s;
            # prevents 502 bad gateway error
            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;
            proxy_set_header   Host $host;
            reset_timedout_connection on;
        }

你可以用/ws/代替/,但是我强烈建议你为你的WebSocket服务器使用一个专用的子域,而不是path,以便于将来的扩展。

相关问题