首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >uwsgi + nginx +烧瓶:上游提前关闭

uwsgi + nginx +烧瓶:上游提前关闭
EN

Stack Overflow用户
提问于 2014-12-10 08:23:16
回答 8查看 35.5K关注 0票数 21

我在我的烧瓶上创建了一个端点,它从数据库查询(远程db)生成一个电子表格,然后在浏览器中作为下载发送它。烧瓶不会抛出任何错误。乌斯吉不抱怨。

但是当我检查nginx的error.log时,我看到了很多

2014/12/10 05:06:24错误14084#0:*239436上游提前关闭连接,从上游读取响应头,客户端: 34.34.34.34,服务器: me.com,请求:"GET /download/export.csv HTTP/1.1",上游:"uwsgi://0.0.0.0:5002",主机:"me.com",引用者:"https://me.com/download/export.csv

我部署uwsgi就像

代码语言:javascript
运行
复制
uwsgi --socket 0.0.0.0:5002 --buffer-size=32768 --module server --callab app

我的nginx配置:

代码语言:javascript
运行
复制
server {
     listen 80;
     merge_slashes off;
     server_name me.com www.me.cpm;

     location / { try_files $uri @app; }
       location @app {
          include uwsgi_params;
          uwsgi_pass 0.0.0.0:5002;
          uwsgi_buffer_size 32k;
          uwsgi_buffers 8 32k;
          uwsgi_busy_buffers_size 32k;
     }

}

server {
      listen 443;
      merge_slashes off;
      server_name me.com www.me.com;

    location / { try_files $uri @app; }
       location @app {
          include uwsgi_params;
          uwsgi_pass 0.0.0.0:5002;
          uwsgi_buffer_size 32k;
          uwsgi_buffers 8 32k;
          uwsgi_busy_buffers_size 32k;
       }
}

这是nginx还是uwsgi的问题,还是两者兼而有之?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-01-22 12:32:50

将nginx.conf更改为包括

代码语言:javascript
运行
复制
sendfile        on;
client_max_body_size 20M;
keepalive_timeout  0;

有关完整的示例,请参见self答案uwsgi在amazon上的新贵

票数 10
EN

Stack Overflow用户

发布于 2017-09-11 10:05:11

在我的例子中,问题是nginx发送带有uwsgi协议的请求,而uwsgi正在监听该端口上的http数据包。因此,要么我必须改变nginx连接到uwsgi的方式,要么更改uwsgi来使用uwsgi协议进行监听。

票数 5
EN

Stack Overflow用户

发布于 2017-09-07 09:07:38

我在ElasticBean秸秆单容器码头WSGI应用程序部署中也有相同的零星错误。在环境上游配置的EC2实例上,如下所示:

代码语言:javascript
运行
复制
upstream docker {
    server 172.17.0.3:8080;
    keepalive 256;
}

对于默认的上游简单负载测试,如下所示:

代码语言:javascript
运行
复制
siege -b -c 16 -t 60S -T 'application/json' 'http://host/foo POST {"foo": "bar"}'

...on、EC2的利用率为70%。其余的是在从上游读取响应头时上游过早关闭连接而引起的502个错误。

解决方案要么是从上游配置中删除keepalive设置,要么更简单、更合理,即使用--http-keepalive (自1.9起)使HTTP保持在uWSGI的旁边。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27396248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档