我尝试使用ngt_a与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
否则,您可以将参数直接包含在位置块中(就像我上面所做的一样)
或自己创建一个并将其放在/ etc / nginx中(如果要坚持使用当前代码)
关于django - django- nginx:/etc/nginx/sites-enabled/myproject中的[emerg] open() “/etc/nginx/proxy_params”失败(2:无此类文件或目录):11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42589781/