Socketio未在NGINX Flask应用程序中发布

问题描述 投票:0回答:2

我有一个运行在NGINX后面的Flask应用程序,正在使用Gunicorn进行部署。部署后,一切正常,可以打我的服务器IP,看到应用程序运行没有问题,但是,当我执行使用socketio的操作时,该操作不会传递给后端,我相信这是一个问题我在NGINX上的配置。我的conf.d文件具有以下内容

server {
    listen 80;
    server_name MY_SERVER_IP;

    location / {
        proxy_pass http://127.0.0.1:8000;
    }

    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:8000/socket.io;
    }
}

我使用]部署应用程序>

gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 app:app

在我的app.py中,我正在使用socketio服务器运行

socketio.run(app, host='127.0.0.1', port=80, debug=True)

也在控制台中看到此内容...

socket.io.min.js:2 GET http://127.0.0.1:8000/socket.io/?EIO=3&transport=polling&t=MuA1z9K net::ERR_CONNECTION_REFUSED

一切都在本地工作。请记住,我对使用socketio的Flask部署还很陌生。

我有一个运行在NGINX后面的Flask应用程序,正在使用Gunicorn进行部署。部署后,一切正常,我可以按我的服务器IP并查看应用程序运行没有问题,...

flask websocket socket.io flask-socketio
2个回答
0
投票

您的服务器在端口8000上运行,因此您的proxy_pass语句应转到该端口,而不是5000:


0
投票

我与socket.io的连接设置不正确。我应该有var socket = io();在我的js脚本中,而不是var socket = io.connect('127.0.0.1:8000');每documentation

© www.soinside.com 2019 - 2024. All rights reserved.