nginx、gunicorn、Django 499 错误 60s

nginx、gunicorn、Django 499 错误 60s

无论我尝试什么配置,60 秒后都会出现 499 错误。我在 8 核/32GB 服务器上使用 Docker,并且前面还有另一个 nginx/lets-encrypt 反向代理用于其他容器。我更偏向于开发方面。我想我需要在后台运行批处理,如果我无法修复此问题,我将进行探索,但我需要了解此错误。

gunicorn worker运行后好像出现错误:

[2019-06-01 17:49:31 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
[2019-06-01 17:49:31 +0000] [1] [INFO] Using worker: threads
[2019-06-01 17:49:31 +0000] [9] [INFO] Booting worker with pid: 9
[2019-06-01 17:49:31 +0000] [10] [INFO] Booting worker with pid: 10
[2019-06-01 17:49:31 +0000] [11] [INFO] Booting worker with pid: 11
[2019-06-01 17:49:31 +0000] [12] [INFO] Booting worker with pid: 12
[2019-06-01 17:49:31 +0000] [13] [INFO] Booting worker with pid: 13
[2019-06-01 17:49:31 +0000] [14] [INFO] Booting worker with pid: 14
[2019-06-01 17:49:31 +0000] [15] [INFO] Booting worker with pid: 15
[2019-06-01 17:49:31 +0000] [16] [INFO] Booting worker with pid: 16

nginx 版本:nginx/1.15.12

gunicorn 19.9.0

Django 2.2.1

配置 nginx

upstream cobalt {
  server cobalt:8000;
}

# Catch all requests with an invalid HOST header
server {
    server_name "";
    listen      8000;
    return      444;
}

# portal
server {
    listen 8000;
    server_name xxxxxxxx;

    location / {
        proxy_set_header Host $host;
        proxy_pass http://cobalt;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Connection "";
        proxy_connect_timeout 1200s;
        proxy_read_timeout 1200s;
        proxy_send_timeout 1200s;
        client_max_body_size 100M;
        client_body_buffer_size 100M;
        client_body_timeout 1200s;
        keepalive_timeout 1200s;
        send_timeout 1200s;
        uwsgi_read_timeout 1200s;
    }

    location /static/ {
        autoindex on;
        alias /static/;
    }

    location /private-x-accel-redirect/ {
        internal;
        alias   /media/;
    }

}

配置 gunicorn

"""gunicorn WSGI server configuration."""
bind = '0.0.0.0:8000'
timeout = 1200
workers = 8
threads = 2

答案1

你解决了这个问题吗?我遇到了同样的问题,但我不知道是什么导致了这个 499 错误。我按照你的方式配置了我的服务器和所有东西。

编辑 1:大家好,我在我的案例中发现了这个问题的根源。由于某种原因,在会话中保存信息:django.session['value1'] = 'value2' 这导致了错误,我删除了 django.session 进行测试,一切正常。我还没有找到解决方案,但一旦我解决了这个问题,我就会在这里更新。

编辑 2:我解决了这个问题,在我的情况下,由于我做了一些事情,无法访问 AWS RDS 中的数据库。我重新创建了数据库,现在一切都运行良好。

相关内容