当通过 ddns 域访问时,nginx 抛出错误请求 400
nginx throws bad request 400 when accessed through ddns domain
通过本地 Web 服务器 IP 访问时工作完美,但通过 NOIP 主机名访问时抛出 400 错误。
对于上下文,路由器配置为将请求转发到该端口上的 Web 服务器。
这是 nginx 配置文件:
server {
listen 80;
server_name 192.168.1.64;
#server_name example.ddns.net;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/projectdir;
}
location / {
include proxy_params;
# proxy_pass http://example.ddns.net;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
我尝试添加主题标签所在的行,但无济于事。
假设您的服务器配置正确,请使用以下内容在 Django 项目中编辑您的 setting.py:
ALLOWED_HOSTS = ["192.168.1.64"]
为了将来参考,在我的例子中,虽然我 ALLOWED_HOSTS 配置正确,但问题是在更改 django 设置文件后重新加载 gunicorn/nginx。下面一行解决了它:
sudo systemctl restart gunicorn
sudo systemctl restart nginx
信用到期,Iain Shelvington and Gaëtan GR 的评论是正确的,根本问题是 ALLOWED_HOSTS 设置(在我的情况下,直到 gunicorn/nginx 重启完成后才应用。
通过本地 Web 服务器 IP 访问时工作完美,但通过 NOIP 主机名访问时抛出 400 错误。
对于上下文,路由器配置为将请求转发到该端口上的 Web 服务器。
这是 nginx 配置文件:
server {
listen 80;
server_name 192.168.1.64;
#server_name example.ddns.net;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/projectdir;
}
location / {
include proxy_params;
# proxy_pass http://example.ddns.net;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
我尝试添加主题标签所在的行,但无济于事。
假设您的服务器配置正确,请使用以下内容在 Django 项目中编辑您的 setting.py:
ALLOWED_HOSTS = ["192.168.1.64"]
为了将来参考,在我的例子中,虽然我 ALLOWED_HOSTS 配置正确,但问题是在更改 django 设置文件后重新加载 gunicorn/nginx。下面一行解决了它:
sudo systemctl restart gunicorn
sudo systemctl restart nginx
信用到期,Iain Shelvington and Gaëtan GR 的评论是正确的,根本问题是 ALLOWED_HOSTS 设置(在我的情况下,直到 gunicorn/nginx 重启完成后才应用。