aws ec2和Django ALLOWED_HOSTS

我已经使用Django在aws EC2上使用Elastic Beanstalk来放置我的网站。 根据Django网站上的build议,我已经将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是安全的,还是会导致安全漏洞?

非常感谢

是的,没关系。 但是,如果你终止实例,你将失去该地址。 所以:你应该努力find一个更灵活/dynamic的解决ALLOWED_HOSTS的方法。 您可能想尝试将实例的地址设置为环境variables。

或者,一个不太dynamic的解决scheme:您可能还想要使用AWS Elastic IP进行检查。 虽然这在虚拟私有云中的私有子网中可能是不可能的 – 尽pipe在设置中听起来并不是这样的情况。

这是另一个探索的select…虽然你将不得不做一些研究,以确定这是否安全。 了解如何在此AWS页面上从AWS IP获取实例的元数据…

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html

然后在您的Django设置文件中利用上面提到的AWS资源,像这样…

 #DJANGO生产环境

导入请求
 from .base import *

 ########## 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]
 ConnectionError除外:
     error_msg =“您只能在AWS EC2实例上运行生产设置”
    引起错误configuration(error_msg)
 ########## END ALLOWED_HOSTS