Websockets继续与nginx和cloudflare

时间:2016-10-29 18:43:12

标签: nginx websocket cloudflare

我的设置是cloudflare - > nginx - > node.js服务器。我已经确认它不是node.js服务器。问题似乎是cloudflare和nginx的结合。它只适用于nginx和node.js。

这是nginx为websocket连接记录的内容:162.158.75.125 - - [29 / Oct / 2016:00:01:47 +0000]" GET / HTTP / 1.1" 101 1047" - " " Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 53.0.2785.143 Safari / 537.36"

nginx config:

server {
    listen 443 ssl;
    server_name vectorwar.io;
    ssl_certificate /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/key.pem;

    location / {
        proxy_pass       http://localhost:7000;
        proxy_set_header Host      $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 31104000s;
        proxy_connect_timeout 31104000s;
        proxy_send_timeout 31104000s;

    }
}

2 个答案:

答案 0 :(得分:2)

您是否尝试过在没有SSL的情况下设置Websocket?

我有过使用SSL制作的Websockets在~45秒后自动断开连接的经验。使用不安全的连接固定。显然不太理想,但你可以试着看看它是否至少解决了断线问题。

答案 1 :(得分:0)

proxy_pass       http://localhost:7000;

尝试向 http 添加一个 s。然后重新加载nginx并重试,

service nginx reload

此外,Websockets 和 Cloudflare 不能很好地配合使用: Websocket disconnects with 1006 error, without a reason