uwsgi在1分钟后返回500错误
我搭建了一个 nginx+uwsgi+flask 的应用,一切运行得很顺利。但是如果我加载一个页面,然后在1分钟后再加载另一个页面(或者同一个页面),uwsgi 就会返回一个500内部服务器错误,而且日志里没有任何信息。如果我重新加载页面,它又能正常工作。
我注意到,这个问题只发生在请求与上一个进程的同一个 pid 绑定的时候。
这是我用来启动 uwsgi 的命令:
HOSTPATH=/var/www/vhosts/example.com
uwsgi -H $HOSTPATH/httpdocs/venv -x $HOSTPATH/httpdocs/uwsgi.xml -M 4 -t 30 -A 4 -p 4 --pidfile /var/run/uwsgi.pid -d /var/log/uwsgi.log --harakiri-verbose --enable-threads --log-5xx --no-orphans
我的 uwsgi.xml 配置文件:
<uwsgi>
<socket>127.0.0.1:3031</socket>
<chdir>/var/www/vhosts/example.com/httpdocs/app</chdir>
<pythonpath>..</pythonpath>
<module>wsgi:app</module>
<master>True</master>
</uwsgi>
还有我的 nginx 配置文件:
server {
listen 80;
listen xx.xxx.xxx.xx:80 default_server;
server_name example.com;
client_max_body_size 128m;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
proxy_set_header X-Accel-Internal /static;
}
location /static {
alias /var/www/vhosts/example.com/httpdocs/app/project/static/;
}
}
有没有人知道这可能是什么原因呢?
2 个回答
0
你确定是uWSGI返回了500错误,而不是nginx在搞事情吗?你能开启flask的调试模式吗?
你有没有查看过这个页面:http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html?
顺便问一下,你为什么要把xml配置和命令行参数混在一起呢?
0
我安装了NewRelic,发现错误是因为MySQL超时了。