我有其使用烧瓶-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的无法匹配/socket.io/
位置/socket.io?EIO=3&transport=polling&t=MYwIxxF
路径。看看nginx documentation on location找出如何编写适合您的需要的位置匹配。