Python 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

大家好

我们有一个简单的web应用程序(REST服务),它使用良好的旧web.py编写,托管在Nginx+uWSGI上。问题在于,一旦大量请求失败,它就会在完全相同的处理程序上执行“504网关超时”,这只会对空数据库(SQLAlchemy+PostgreSQL)执行简单的SQL选择查询,这意味着查询不会返回任何结果。以下是uWSGI配置:

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容器中。共享视图超时的源代码将提供更多提示,说明哪里出了问题。我建议您在应用程序中添加更多日志记录,以缩小发生故障的范围。