trn*_*snt 2 django amazon-ec2 amazon-web-services
我已经使用 Django 在 aws EC2 上使用 Elastic Beanstalk 建立了我的网站。我已按照 Django 网站上的建议将 ALLOWED_HOSTS 设置为 ['www.mydomain.fr', '.mydomain.fr']。
但是我收到了很多警报,例如:
无效的 HTTP_HOST 标头:'ip-xxx-xx-xx-xxx.eu-west-1.compute.internal'。您可能需要将 u'ip-xxx-xx-xx-xxx.eu-west-1.compute.internal' 添加到 ALLOWED_HOSTS。
ip-xxx-xx-xx-xxx.eu-west-1.compute.internal 在哪里是我的私有 DNS?
将它添加到 ALLOWED_HOSTS 是否安全,还是会导致安全漏洞?
非常感谢
是的,没关系。但是如果您终止该实例,您将丢失该地址。所以:你应该努力寻找一种更灵活/动态的方式来解决 ALLOWED_HOSTS。您可能想尝试将实例的地址设置为环境变量。
或者,一个不太动态的解决方案:您可能还想检查使用 AWS 弹性 IP。虽然,这在 Virtual Private Cloud 中的私有子网中可能是不可能的——尽管在您的设置中听起来并非如此。
这是探索的另一种选择……尽管您必须对这是否安全进行一些研究。在此 AWS 页面查看如何从 AWS IP 获取实例的元数据...
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html
然后在你的 Django 设置文件中利用上面建议的 AWS 资源,就像这样......
# DJANGO 制作设置
进口请求
从 .base 导入 *
########## ALLOWED_HOSTS
从 requests.exceptions 导入 ConnectionError
url = "http://169.254.169.254/latest/meta-data/public-ipv4"
尝试:
r = requests.get(url)
instance_ip = r.text
ALLOWED_HOSTS += [instance_ip]
除了连接错误:
error_msg = "您只能在 AWS EC2 实例上运行生产设置"
引发不当配置(error_msg)
########## END ALLOWED_HOSTS
| 归档时间: |
|
| 查看次数: |
4562 次 |
| 最近记录: |