gpt4 book ai didi

docker - 通过Docker中的nginx代理将flask-socket事件传递到uWSGI服务器的位置

转载 作者:行者123 更新时间:2023-12-02 19:25:43 25 4
gpt4 key购买 nike

我正在尝试在Docker上使用uwsgi和nginx设置使用Socket-IO事件(基于Flask-SocketIO)。我不确定如何配置我的nginx文件以允许客户端和服务器之间的套接字连接。这是我当前的nginx配置:

server {
listen 80;
server_name _;

location / {
try_files $uri @app;
}

location @app {
include /etc/nginx/uwsgi_params;
uwsgi_pass myapp:8080;
}

location /socket.io {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
uwsgi_pass myapp:8080/socket.io;
}
}

Docker撰写:
version: '3.5'
services:
web_server:
container_name: nginx
external_links:
- app
build:
context: .
dockerfile: server/Dockerfile
ports:
- 80:80
depends_on:
- app
app:
container_name: myapp
build:
context: .
dockerfile: application/Dockerfile
expose:
- 8080

先感谢您!

最佳答案

Flask-SocketIO文档显示了一个示例nginx配置。这里是Socket.IO位置块:

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

整个配置为 here

您正在使用uwsgi_pass,根据我的理解,它不支持代理WebSocket连接。如本示例所示,使用HTTP。

关于docker - 通过Docker中的nginx代理将flask-socket事件传递到uWSGI服务器的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56418836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com