配置 Nginx 仅允许指定主机

配置 Nginx 仅允许指定主机

我在 DigitalOcean 上运行一个 Django 项目(使用 Nginx、Gunicorn 和 Postgres),并且我在 settings.py 中指定了“允许的主机”,如下所示:

ALLOWED_HOSTS = ['sub.domain.tld']

根据 DigitalOcean 已经设置的内容以及我找到的一篇博客文章,我还修改了页面的 Nginx 设置(/etc/nginx/sites-available/django),如下所示:

if ($host !~* ^(sub.domain.tld)$ ) {
    return 444;
}

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://app.server;
}

我仍然不断收到来自我的 Django 项目的电子邮件,例如:

“HTTP_HOST 标头无效:‘1111.ip138.com’。您可能需要将 u‘1111.ip138.com’添加到 ALLOWED_HOSTS。”

当我从浏览器访问该网站时,一切似乎都正常。你能告诉我我的配置问题出在哪里吗?

谢谢,托比亚斯

相关内容