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

msl*_*sln 12 django django-deployment

我尝试使用本教程与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;
 }
}
Run Code Online (Sandbox Code Playgroud)

然后运行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
Run Code Online (Sandbox Code Playgroud)

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

dan*_*dee 24

proxy_params99%的时间都是错误的路径(根据我的经验),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;
Run Code Online (Sandbox Code Playgroud)

哪些用于将信息转发到您要代理的应用程序,我已经在没有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;
 }
Run Code Online (Sandbox Code Playgroud)

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

include /path/to/proxy_params

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

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