504 网关超时 flask socketio
504 gateway timeout flask socketio
我正在开发一个 flask-socketio 服务器,该服务器卡在只返回 504
s(网关超时)的状态。我们在服务器前面使用 AWS ELB。我想知道是否有人不介意提供一些有关如何调试此问题的提示。
其他症状:
- 此问题不会一直发生,但一旦开始发生,从请求中仅收到
504
s。重新启动该过程似乎可以解决问题。
- 当我 运行
netstat -nt
在服务器上时,我看到许多 rec-q 超过 100 的条目卡在 CLOSE_WAIT
状态
- 当我在运行
strace
进程中,我只看到select
和clock_gettime
- 当我在服务器上 运行
tcpdump
时,我可以看到进入服务器的有效请求
- AWS 健康检查正在成功恢复
编辑:
我还应该补充两件事:
- flask-socketio 的服务器用于生产(不是 gunicorn 或 uWSGI)
- Python 的
daemonize
函数用于应用程序守护进程
似乎切换到 gunicorn 作为 wsgi 服务器解决了这个问题。这可能是 flask-socketio wsgi 服务器的问题。
我正在开发一个 flask-socketio 服务器,该服务器卡在只返回 504
s(网关超时)的状态。我们在服务器前面使用 AWS ELB。我想知道是否有人不介意提供一些有关如何调试此问题的提示。
其他症状:
- 此问题不会一直发生,但一旦开始发生,从请求中仅收到
504
s。重新启动该过程似乎可以解决问题。 - 当我 运行
netstat -nt
在服务器上时,我看到许多 rec-q 超过 100 的条目卡在CLOSE_WAIT
状态 - 当我在运行
strace
进程中,我只看到select
和clock_gettime
- 当我在服务器上 运行
tcpdump
时,我可以看到进入服务器的有效请求 - AWS 健康检查正在成功恢复
编辑: 我还应该补充两件事:
- flask-socketio 的服务器用于生产(不是 gunicorn 或 uWSGI)
- Python 的
daemonize
函数用于应用程序守护进程
似乎切换到 gunicorn 作为 wsgi 服务器解决了这个问题。这可能是 flask-socketio wsgi 服务器的问题。