sky*_*ler 5 python nginx wsgi 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"
Run Code Online (Sandbox Code Playgroud)
我正在运行 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
Run Code Online (Sandbox Code Playgroud)
我所在的服务器有两个(虚拟化)内核,所以我做了 1 + cores*2 来确定工作人员的数量。我还提高了buffer-size
参数以尝试解决此问题,但错误仍然发生。
我不确定从哪里开始调试。我几乎没有运行 uWSGI(或任何 Python WSGI 实现)的经验。
小智 4
触发超时的选项(在nginx中)是
http://wiki.nginx.org/HttpUwsgiModule#uwsgi_read_timeout
它的默认值为 60 秒,因此如果您的请求在该时间片内没有生成输出,nginx 将关闭连接。
如果你没有在uWSGI中看到错误(我认为是由于nginx断开连接而导致的“断管”),我会调查为什么生成如此慢
归档时间: |
|
查看次数: |
17772 次 |
最近记录: |