Vit*_*lar 5 python nginx flask server-sent-events
我遇到了在 Nginx 上运行 SSE 的问题。我有一个正在使用 Flask 的 Web 应用程序,并且我正在使用一个名为flask-sse
将事件发送到 JS 端的模块。
我用来gunicorn
处理请求,我将其作为 Nginx 配置:
upstream backend {
server 127.0.0.1:5000;
keepalive 100;
}
server {
listen 80;
access_log /var/log/nginx/client-access.log;
error_log /var/log/nginx/client-error.log;
location / {
include proxy_params;
proxy_pass http://backend;
proxy_buffering off;
proxy_cache off;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_request_buffering off;
}
}
Run Code Online (Sandbox Code Playgroud)
接收事件的端点已打开/stream
。通过查看 Nginx 日志,我发现到此端点的第一次连接始终是 504 错误,如下所示:
10.2.2.254 - - [09/Apr/2018:09:06:14 +0000] "GET /stream HTTP/1.1" 504 585 "http://address/results" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
该 Nginx 在名为 Sophos ( https://www.sophos.com/en-us.aspx )的网关后面运行。我不知道这是否会导致问题,但是当我从本地主机运行时,一切正常。
另外,我认为非常奇怪的是,第一个调用(我上面发布的那个调用)返回 504,但随后的调用返回 200,这打破了我的想法。
你们对如何解决这个问题有什么想法吗?我是否缺少一些 Nginx 配置?
谢谢
归档时间: |
|
查看次数: |
834 次 |
最近记录: |