我在Elastic Beanstalk上部署了django应用程序。我的应用程序的HealthCheck一直失败,因为ALLOWED_HOSTS
设置变量中未包含ELB HealthCheck的IP。
如何修改ALLOWED_HOSTS
以通过HealthCheck?我只是传递了明确的IP地址,但是我相信这会改变,因此,每当IP更改时,检查都会再次失败,直到添加新IP。
最佳答案
您的EC2实例可以查询metadata有关其自身的信息,包括其IP地址,该地址可从http://169.254.169.254/latest/meta-data/local-ipv4获得。
您可以通过ssh-ing进入EC2实例并运行以下命令来进行测试:
curl http://169.254.169.254/latest/meta-data/local-ipv4
因此,在您的配置中,您可以执行以下操作:
import requests
ALLOWED_HOSTS = ['.yourdomain.com', ]
try:
EC2_IP = requests.get('http://169.254.169.254/latest/meta-data/local-ipv4').text
ALLOWED_HOSTS.append(EC2_IP)
except requests.exceptions.RequestException:
pass
显然,如果不需要依赖项,可以将
requests
替换为urllib
。关于带有ALB HealthCheck的Django ALLOWED_HOSTS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27720254/