带有ALB HealthCheck的Django ALLOWED_HOSTS

标签 django amazon-web-services amazon-ec2 amazon-elb amazon-elastic-beanstalk

我在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/

相关文章:

django 1.3 国际化...切换语言需要重新启动服务器?

python - 为什么Django查询要检查唯一性?

模型 IntegerField 上的 Django SearchVector

linux - 设置 Cake php 后,AWS 上的 session 权限被拒绝。

amazon-web-services - 是否可以查询 AWS 开发工具包以确定当前凭证的 IAM 角色?

amazon-web-services - 允许VPC中的Lambda访问同一VPC中的Elasticsearch域

javascript - 在 Django 中,我知道如何构建模板。渲染到响应 ('something.html' )。但是,如何在其中包含 JSON 对象呢?

python - 使用 pip 和 requirements.txt 在弹性 beanstalk 上安装 scikit-learn 和 scipy

amazon-ec2 - 我可以创建包含多个 ebs 卷(即 sda 和 sdb)的 AMI

amazon-web-services - AWS Backup Service 会重新启动我的 EC2 实例吗?