使用 Docker 时如何在生产中设置 ALLOWED_HOSTS Django 设置?

the*_*pan 6 django docker

我总是ALLOWED_HOSTS从 Django 中的环境变量中设置我的。在我的开发中,.env我总是设置ALLOWED_HOSTS=.localhost,.127.0.0.1和生产ALLOWED_HOSTS=mydomain.dom,my_ip_address

现在我正在熟悉 Docker,问题是它ALLOWED_HOSTS在生产中的价值是什么。它是否应该保留为 localhost,因为我知道 localhost 将引用主机容器,或者我应该将其设置为我的域。我正在使用 Nginx 进行反向代理来转发请求。

Nic*_*oen 3

您应该将其设置为您的域。ALLOWED_HOSTS用于判断请求是否来自正确的域名。

如果您查看ALLOWED_HOSTS 的文档,您会发现它与请求的Host标头进行比较,该标头由访问您网站的人的用户代理设置。

因此,尽管 Docker 容器正在为其自己的本地主机提供服务,但请求源自example.com

查看文档的这一部分,了解为什么需要主机头验证,您可能会更好地理解其目的ALLOWED_HOSTS