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

前端之家收集整理的这篇文章主要介绍了如何将此Nginx调试为uWSGI超时?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在运行一个数据库支持的网站,只能获得很少的流量.但是,一天或两天,请求将超时,我会在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断开连接的部分),我会调查为什么生成这么慢

原文链接:https://www.f2er.com/nginx/435437.html

猜你在找的Nginx相关文章