Nginx 和 Gunicorn 挂在 GET 请求上

Nginx 和 Gunicorn 挂在 GET 请求上

我使用 Nginx + Gunicorn 为我的 Django 项目提供服务。所有 GET 请求都会挂起约 1 分钟。内容似乎可以立即使用,因为我可以在浏览器检查器中看到它,但浏览器本身似乎仍在等待更多数据。这是我的 Ngnix 配置

#allow for up to 3 connections per second.
limit_req_zone  $binary_remote_addr  zone=one:10m   rate=3r/s; 

server {
listen   80;
server_name example.com;

root /var/www/example.com/example/;

# serve directly - analogous for static/staticfiles
location /media/ {
    # this changes depending on your python version
    root /home/example/;
}
location /static/ {
    # if asset versioning is used
    if ($query_string) {
        expires max;
    }
    root /var/www/example.com;
}


location / {

    #Allow for a burst of 50.
    limit_req   zone=one burst=50 nodelay;
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_connect_timeout 10;
    proxy_read_timeout 10;
    proxy_pass http://localhost:8001/;
}


# what to serve if upstream is not available or crashes
error_page 500 502 503 504 /media/50x.html;
}

我的 Gunicorn 配置:

bind = "127.0.0.1:8001"
workers = 3
worker_class = "gevent"

有什么明显的原因会导致请求保持开放这么长时间吗?

答案1

事实证明,问题在于我对静态内容的路由不正确,导致它在每次请求时都被阻止。

相关内容