django- nginx:[emerg] open()“/ etc / nginx / proxy_params”在/ etc / nginx / sites-enabled / myproject中失败(2:没有这样的文件或目录):11

我尝试使用this tutorial在Nginx和Gunicorn上部署一个django项目.我做了所有的待办事项但是,当我使用以下代码创建/ etc / nginx / sites-available / myproject文件时:

server {
listen 80;
server_name server_domain_or_IP;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
    root /home/sammy/myproject;
}

location / {
    include proxy_params;
    proxy_pass http://unix:/home/sammy/myproject/myproject.sock;
 }
}

然后运行sudo nginx -t查找错误,我收到此错误:

nginx: [emerg] open() "/etc/nginx/proxy_params" failed (2: No such file or directory) in /etc/nginx/sites-enabled/myproject:11
nginx: configuration file /etc/nginx/nginx.conf test failed

有什么问题??
以及如何解决?

你99%的时间都没有为proxy_params找到错误的路径(根据我的经验),proxy_params文件的默认位置是/ etc / nginx / proxy_params,但这对你来说似乎并不相同.

proxy_params文件包含以下内容:

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

用于将信息转发到您正在代理的应用程序,我已经在没有proxy_params文件的旧Centos服务器上工作,而不是自己创建一个我直接包含这些参数,所以我的位置块看起来像这样

location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://unix:/home/sammy/myproject/myproject.sock;
 }

所以这取决于你,如果文件存在于另一个位置,只需将其包含在正确的位置:

include / path / to / proxy_params

否则你可以将params直接包含在位置块中(就像我上面所做的那样)

或者自己创建一个并将其放在/ etc / nginx中(如果你想坚持使用当前的代码)

翻译自:https://stackoverflow.com/questions/42589781/django-nginx-emerg-open-etc-nginx-proxy-params-failed-2-no-such-file

转载注明原文:django- nginx:[emerg] open()“/ etc / nginx / proxy_params”在/ etc / nginx / sites-enabled / myproject中失败(2:没有这样的文件或目录):11