Python uWSGI罕见网关超时
大家好 我们有一个简单的web应用程序(REST服务),它使用良好的旧web.py编写,托管在Nginx+uWSGI上。问题在于,一旦大量请求失败,它就会在完全相同的处理程序上执行“504网关超时”,这只会对空数据库(SQLAlchemy+PostgreSQL)执行简单的SQL选择查询,这意味着查询不会返回任何结果。以下是uWSGI配置:Python uWSGI罕见网关超时,python,nginx,wsgi,uwsgi,Python,Nginx,Wsgi,Uwsgi,大家好 我们有一个简单的web应用程序(REST服务),它使用良好的旧web.py编写,托管在Nginx+uWSGI上。问题在于,一旦大量请求失败,它就会在完全相同的处理程序上执行“504网关超时”,这只会对空数据库(SQLAlchemy+PostgreSQL)执行简单的SQL选择查询,这意味着查询不会返回任何结果。以下是uWSGI配置: uwsgi: enable-threads: 1 threads: 1 workers: 2 master: 1 socket: :800
uwsgi:
enable-threads: 1
threads: 1
workers: 2
master: 1
socket: :8001
plugin: python
chown-socket: nginx:nginx
pythonpath: /usr/lib/python2.6/site-packages/nailgun
touch-reload: /var/lib/nailgun-uwsgi
virtualenv: /usr
module: nailgun.wsgi
buffer-size: 49180
listen: 4096
pidfile: /tmp/nailgun.pid
logto: /var/log/nailgun/app.log
mule: 1
lazy: true
shared-pyimport: /usr/lib/python2.6/site-packages/nailgun/utils/mule.py
下面是Python应用程序日志中的一行:
GET /api/nodes/ => generated 2 bytes in 10199124 msecs
uWSGI版本为2.0.3
有人能给我一个提示吗?我怀疑它的数据库连接或其他资源用完了,或者数据库连接失败了,然后它会一直等待新的连接,直到工作程序终止。您可以看到超时是来自Nginx还是uWSGI(检查响应头)看起来像来自uWSGI,因为错误首先出现在日志中。此外,它可能与Docker有关,因为应用程序和Postgrsql位于不同的Docker容器中。共享视图超时的源代码将提供更多提示,说明哪里出了问题。我建议您在应用程序中添加更多日志记录,以缩小发生故障的范围。