我正在尝试与Gunicorn一起配置nginx用于Django项目。 nginx给我以下错误:
DisallowedHost at /
Invalid HTTP_HOST header: 'localhost:90,localhost:90'. The domain name provided is not valid according to RFC 1034/1035.
这是我的nginx配置
server {
listen 90;
listen [::]:90;
server_name xxxx;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/user/djangopro/djangoapp;
}
location / {
include proxy_params;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_buffering off;
proxy_redirect off;
proxy_pass http://localhost:8200/;
}
}
Gunicorn正在localhost:8200
正常服务。谁能告诉我导致错误的原因是什么?
我得到了同样的错误。我猜你可能会从Flask转换到Djano?如果从配置中删除proxy_set_header Host $http_host;
行,它应该工作(它修复了我的错误)。我认为它的作用是将请求IP地址和代理IP地址堆叠在一起,而django只需要一个ip地址,而不是列表。看到这张Djano门票:https://code.djangoproject.com/ticket/28028
我猜你已经弄清楚了(因为已经有几个月了),但是我仍然在回答拯救某人2小时我刚刚花了谷歌搜索:)
编辑:我想澄清一下,问题来自同时设置include proxy_params;
和proxy_set_header Host $http_host;
。默认的proxy_params
已经包含了proxy_set_header Host $http_host;
,因此它将设置主机两次,因此列出两个主机。如果你在Ubuntu上,请查看proxy_params
中的/etc/nginx/proxy_params
文件(在其他机器上将是类似的路径)。