繁体   English   中英

nginx和uWSGI给出“504网关超时”

[英]nginx and uWSGI gives “504 Gateway timeout”

我正在学习使用uWSGI和nginx设置Django和您的Web服务器的教程。

uWSGI已启动并正在运行

我使用以下行设置uwsgi来为我的Django项目服务。

mydjangoproj $ uwsgi --http 0.0.0.0:8002 --module wsgi --harakiri 5

当我在浏览器中访问时,这适用于42.42.42.42:8002

我的nginx设置

nginx作为守护进程运行,访问它的默认站点,端口80,工作。

我使用以下mydjangoproj_nginx.conf文件将此作为站点添加到nginx:

server {
    listen      8000;
    server_name 42.42.42.42;
    charset     utf-8;
    client_max_body_size 75M;

    location /static {
        alias /home/myuser/mydjangoproj/static; 
    }

    location / {
        uwsgi_pass 127.0.0.1:8002;
        include     /home/myuser/mydjangoproj/uwsgi_params;
    }
}

我使用教程中未经修改的uwsgi_params版本:

uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

它确实完美地提供了静态文件。

错误

如果我访问42.42.42.42:8000它会挂起很长一段时间,直到nginx超时我想,我得到504 Gateway Time-out

uWSGI在shell中没有写任何内容。 如果直接在浏览器中访问,它会写有关接收请求的信息。

nginx错误日志仅在超时后写入:

2014/12/11 05:31:12 [error] 28895#0: *1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 66.66.66.66, server: 42.42.42.42, request: "GET / HTTP/1.1", upstream: "uwsgi://42.42.42.42:8002", host: "42.42.42.42:8000"

如果我关闭刚刚从shell运行的uWSGI,我会立即获得502 Bad Gateway

在线搜索时,人们只建议将uWSGI超时设置为低于nginx超时,这就是我用--harakiri 5运行uWSGI的原因。

那么,我的问题是什么?

我认为你在http模式下运行--http 0.0.0.0:8002但你已经配置了nginx,因为wsgi代理将你的uwsgi脚本更改为:

 uwsgi --socket :8002 --module wsgi --harakiri 5

请注意,如果您在同一台机器上运行nginxuwsgi ,最好使用unix套接字

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM