Flask SSE和Nginx无法正常工作

时间:2018-04-09 09:39:44

标签: python nginx flask server-sent-events

我正面临着在Nginx上运行SSE的问题。我使用的是一个使用Flask的网络应用,我使用一个名为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;

        }
}

接收事件的端点位于/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配置吗?

由于

0 个答案:

没有答案