nginx“ proxy_pass”指令中的参数数目无效

时间:2018-07-29 22:12:37

标签: django nginx

nginx: [emerg] invalid number of arguments in "proxy_pass" directive in /etc/nginx/sites-enabled/django_direct:12

我的nginx conf文件:

server {
    listen 80;
    server_name 94.154.13.214;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /root/django_direct/main_app/;
    }

    location / {
        include proxy_params;
        proxy_pass unix: /root/django_direct/django_direct.sock;
    }
}

我该怎么办? UPD: 我已经更改了这样的文件:

proxy_pass http://unix:/root/django_direct/django_direct.sock;

但是没有帮助,我重新启动了Nginx,现在 我现在收到502 Bad Gateway错误。

4 个答案:

答案 0 :(得分:2)

您的论点是错误的。 它需要一个网址:

  

设置代理服务器的协议和地址以及位置应映射到的可选URI。作为协议,可以指定“ http”或“ https”。该地址可以指定为域名或IP地址,以及一个可选端口:

     

proxy_pass http://localhost:8000/uri/;

     

或作为在“ unix”之后指定并用冒号括起来的UNIX域套接字路径:

     

proxy_pass http://unix:/tmp/backend.socket:/uri/;

请参阅文档:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

答案 1 :(得分:1)

nginx看到两个参数:unix/root/django_redirect/...。但是我有一个想法,您想指定一个UNIX域套接字路径。您可以执行以下操作:

proxy_pass http://unix:/root/django_direct/django_direct.sock;

documentation中所述。

答案 2 :(得分:0)

如果其他人发现此错误并出现此错误。检查参数行的末尾是否有分号。适用于所有行,而不仅仅是proxy_pass。

答案 3 :(得分:0)

您错误地输入=字符,试图以这种方式分配值时,也会发生这种情况。

proxy_pass = http://other_node;

例如auth_basic = "restricted site"可能会发生同样的事情。

只需删除=