Che*_*nji 9 nginx django gunicorn
我的服务器上收到无效的 HTTP_HOST 标头错误。我不明白为什么会发生这种情况以及如何解决它。每次发生这种情况时,后端都会停止工作,我必须重新启动服务器。
任何帮助将不胜感激。
提前致谢!
仅供参考:服务器是aws ec2;前端是 Angular 的,后端是带有 Gunicorn 的 django/drf 。Angular 和 DRF 都部署在同一台服务器上。
错误 0。如果我没有在 nginx.conf 中设置 Host 变量,我会多次收到以下错误。无效的 HTTP_HOST 标头:“/run/gunicorn.sock:”。根据 RFC 1034/1035,提供的域名无效。
如果我在 nginx.conf 中设置 Host 变量,则会出现以下错误。
错误1. proxy_set_header 主机$http_host;
无效的 HTTP_HOST 标头:“127.0.0.1:8000,127.0.0.1:8000”。根据 RFC 1034/1035,提供的域名无效。
错误2. proxy_set_header 主机$host;
无效的 HTTP_HOST 标头:“127.0.0.1:8000,127.0.0.1”。根据 RFC 1034/1035,提供的域名无效。
错误 3. proxy_set_header 主机 $server_name;
无效的 HTTP_HOST 标头:“13.234.187.18,13.234.187.18:8000”。根据 RFC 1034/1035,提供的域名无效。
nginx.conf 如下。
server {
listen 8000;
server_name 13.234.187.18;
location / {
proxy_set_header Host $host;
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
Run Code Online (Sandbox Code Playgroud)
我在 nginx 网站上找到了以下代码。它会解决这个问题吗? http://nginx.org/en/docs/http/request_processing.html
server {
listen 80;
server_name "";
return 444;
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*ton 11
问题是您导致 Host 标头被包含两次。
proxy_set_header Host $host;
include proxy_params;
Run Code Online (Sandbox Code Playgroud)
查看该proxy_params
文件会发现它已经在那里设置了。再次设置它会导致两个值用逗号连接。
在该文件中,您将找到包含该文件时将使用的预设标头。您不需要在自己的配置中重复任何这些行。
ubuntu@vmtest-ubuntu2004:~$ cat /etc/nginx/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_set_header Host $host;
您可以从配置中删除您自己的附加内容。
小智 5
我有一个类似的问题,但是,我的 Nginx 配置文件中没有proxy_set_header
,它只是include proxy_params;
.
根据 Django 文档,当您的站点位于代理服务器后面时,这里发生的情况是,Django 将拒绝来自代理的请求,认为它们不安全,即使客户端和代理之间的连接可能是安全的。所以解决方案是更新 Djangosettings.py
文件并添加以下内容:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
Run Code Online (Sandbox Code Playgroud)
您可以在此处进一步阅读有关此问题的信息: https: //docs.djangoproject.com/en/3.1/ref/settings/#secure-proxy-ssl-header
归档时间: |
|
查看次数: |
21467 次 |
最近记录: |