如何将此Nginx调试为uWSGI超时?

我正在运行一个数据库支持的网站,只能获得很少的流量.但是,一天或两天,请求将超时,我会在Nginx的error.log中看到这个(或类似的)错误:2013/06/13 18:32:40 [error] 16723#0: *27796 upstream timed out (110: Connection timed out) while reading re

我正在运行一个数据库支持的网站,只能获得很少的流量.但是,一天或两天,请求将超时,我会在Nginx的error.log中看到这个(或类似的)错误:

2013/06/13 18:32:40 [error] 16723#0: *27796 upstream timed out (110: Connection timed out)
while reading response header from upstream,client: 199.71.215.214,server:
app.mypythonwebapp.com,request: "POST /api?submit_staker_response HTTP/1.1",upstream:
"uwsgi://unix:/var/run/uwsgi/app.mypythonwebapp.com-uwsgi.sock",host:
"app.mypythonwebapp.com",referrer:
"https://app.mypythonwebapp.com/survey/5/791/70ea73eb9a489f2dead804a95c400ab2"

我正在运行uWSGI,并且在其日志文件中根本没有任何相关内容(我可以告诉).我怀疑它可能与PostgreSQL有关,但如果我通过pg_stat_activity检查它的状态,我看不出任何异常.

这是我的uWSGI YAML配置文件:

uwsgi:
    socket: /var/run/uwsgi/%n-uwsgi.sock
    workers: 5
    buffer-size: 32768
    callable: app
    wsgi-file: /opt/sites/app.mypythonwebapp.com/run.py
    virtualenv: /opt/virtualenv/app.mypythonwebapp.com
    pythonpath: /opt/sites/app.mypythonwebapp.com

我所在的服务器有两个(虚拟化)核心,所以我做了1个核心* 2来确定工作人员的数量.我还提高了buffer-size参数以尝试解决此问题,但错误仍然存在.

我不知道从哪里开始调试这个.我没有运行uWSGI(或任何Python WSGI实现)的经验.

最佳答案
触发超时的选项(在nginx中)是

http://wiki.nginx.org/HttpUwsgiModule#uwsgi_read_timeout

它的默认值是60秒,所以如果你请求不生成输出那个时间片nginx会关闭连接.

如果你没有看到uWSGI中的错误(我想从“断开的管道”中假设nginx断开连接的部分),我会调查为什么生成这么慢

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部