Nginx的不socket.io合作生产服务器上

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

我有其使用烧瓶-socketio延伸的烧瓶中应用内。它使用“socketio.run()”或“瓶运行”开发服务器工作正常,本地计算机上。我希望把它与一个nginx的代理工作,和它的作品在本地机器上使用此nginx的服务器配置:

文件/etc/nginx/sites-available/server.conf

server {
    listen 8080;
    location / {
        proxy_pass http://localhost:5000;
    }
}

实际应用在端口5000,socketio.run(),这是我听到的运行也是一个良好的生产服务器。奇怪的是,它即使有这个消息:“没有可用的WebSocket运输安装eventlet或GEVENT和GEVENT-的WebSocket以提高性能。”它还可以与这样的警告:“烧瓶SocketIO是WERKZEUG下运行,可将WebSocket是不可用的。” (第一当我使用socketio.run(),第二与烧瓶运行)

然而,如果我尝试在生产服务器上运行同样的事情,唯一的HTTP部分工作,而插座没有。正如我在互联网上无处不在读我应该指定头连接和nginx的服务器配置升级,我不明白为什么和我尝试过:

文件/etc/nginx/sites-available/server.conf

server {
        listen 80;
        server_name servername.com;

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

        location /socket.io/ {
            proxy_pass http://127.0.0.1:5000/socket.io;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
}

结果是一样的,插座没有工作。使用 '瓶中跑' 与任何CONFIGS我得到这些调试消息:127.0.0.1 - - [04 /二月/ 2019 20时55分52秒] “GET /socket.io?EIO=3&transport=polling&t=MYwIxxF HTTP / 1.1” 404 - 将表明不工作socketio,但在服务器404,我看不出有任何理由把它买走,replyes。

我的本地计算机上运行卡利Linux和nginx的12年1月13日,遥控器是Ubuntu的18.04 nginx的1.14.0现在我真的不明白这配置是正确的,为什么是第一configuraion工作我的本地计算机上,为什么没有配置工作生产服务器,以及如何在做我这个解释器404的消息。即使有在互联网上一些指导意见,它不和我一起工作。

任何帮助表示赞赏!

nginx flask socket.io web-deployment
1个回答
-1
投票

也许nginx的无法匹配/socket.io/位置/socket.io?EIO=3&transport=polling&t=MYwIxxF路径。看看nginx documentation on location找出如何编写适合您的需要的位置匹配。

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