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错误。
答案 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"
可能会发生同样的事情。
只需删除=
。