【发布时间】:2021-10-08 11:09:48
【问题描述】:
由于某种原因,当我的 Flas 应用程序部署到 Docker 时,它会因多个请求而崩溃并出现错误
nginx | 2020/06/26 20:41:39 [error] 20#20: *1 upstream prematurely closed connection while reading response header from upstream, client: 172.18.0.1, server: , request: "POST /api/v1.0/export HTTP/1.1", upstream: "uwsgi://172.18.0.2:5555", host: "127.0.0.1:80"
flask | DAMN ! worker 4 (pid: 16) died, killed by signal 9 :( trying respawn ...
flask | Respawned uWSGI worker 4 (new pid: 18)
应用在venv上运行时运行良好
uWSGI 配置如下:
[uwsgi]
wsgi-file = run.py
callable = app
socket = :5555
processes = 16
threads = 2
master = true
chmod-socket = 660
vacuum = true
die-on-term = true
harakiri-verbose = true
和 nginx 配置看起来像:
server {
listen 80;
location / {
include uwsgi_params;
uwsgi_pass flask:5555;
uwsgi_read_timeout 300;
}
client_max_body_size 100M;
client_header_timeout 120s;
client_body_timeout 120s;
keepalive_timeout 120s;
send_timeout 120s;
}
对此有什么想法吗?
【问题讨论】:
-
你排除了记忆吗?尝试 1 个进程和 1 个线程。如果可行,您可能会遇到资源限制。 (我假设您的 Flask 应用程序配置为使用端口 5555 而不是通常的 5000。)