使用的服务器是centos7,部署使用的是 nginx + python3.7 + super + gunicorn + eventlet,
部署的代码是flask-socketio的官方的 example 源码,链接为https://github.com/miguelgrinberg/Flask-SocketIO/tree/master/example,
这份代码在本地跑起来是没有问题的,但是部署到服务器之后,浏览器的控制台一直报错,页面不能正常通信,并且一直尝试连接,每一秒钟都会更新一次 sid,浏览器的控制台报错如下:
index.js:83 POST http://192.168.1.110:9001/socket.io/?EIO=3&transport=polling&t=Mx-f5Fy&sid=85cb69f8fd484f5287b865a1cfe 400 (BAD REQUEST)
WebSocket connection to 'ws://192.168.1.110:9001/socket.io/?EIO=3&transport=websocket&sid=85cb69f8fd484f5287b865a1cfe' failed: WebSocket is closed before the connection is established.
我的 nginx 配置如下:
说明一下,proxy_pass 到 20001 是因为我的 super 托管到这个端口的,所以 20001 的 api 这个时候服务还是正常的
server {
    listen  9001;
    server_name _;
    access_log /var/log/nginx/access-sio.log main;
    error_log /var/log/nginx/error-sio.log;
    error_page 404              /404.html;
    error_page 400 502 503 504  /50x.html;
    location = / {
        root /data/www/sio/;
        index index.html;
    }
    location / {
        proxy_set_header Host $http_host;
        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 $scheme;
        include proxy_params;
        proxy_pass http://127.0.0.1:20001/;
        proxy_redirect off;
    }
    location /socket.io {
        include proxy_params;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass http://127.0.0.1:20001/socket.io;
 }
}
麻烦有了解的帮忙解答一下,这个问题我在网上找了,都是说在 nginx 中添加配置,但是配置我已经加进去了,
现在实在不知道是啥问题了...
|  |      1Latin      2019-12-13 18:25:45 +08:00 加配置重启 nginx 了吗? | 
|  |      2sidegem      2019-12-13 19:15:55 +08:00 location /ws {  # For websocket support proxy_pass http://10.1.1.13:8080; proxy_http_version 1.1; proxy_set_header Upgrade websocket; proxy_set_header Connection upgrade; proxy_read_timeout 86400; } 少个 proxy_set_header 配置? | 
|      3superrichman      2019-12-13 21:10:56 +08:00 eventlet 换 gevent 试试 | 
|      6chuxiaonan      2019-12-14 15:02:03 +08:00 via iPhone 当时似乎也遇到过  好像是版本的问题导致的 客户端和服务端全部降版本 然后锁住 重试一下试试 | 
|  |      7kayseen OP |