相关疑难解决方法(0)

Django和Elastic Beanstalk URL运行状况检查

我有一个Django webapp.它在Elastic Beanstalk上的Docker中运行.

我想指定一个运行状况检查URL,用于稍微更高级的运行状况检查,而不是"ELB是否可以建立TCP连接".

完全合理的ELB通过连接到该实例通过HTTP,使用实例的主机名(例如,做到这一点ec2-127-0-0-1.compute-1.amazonaws.com)作为Host标题.

Django ALLOWED_HOSTS验证了Host传入请求的标头.我通过环境变量将它设置为我的应用程序的外部域.

不出所料,完全合理的是,由于缺乏匹配,Django拒绝了ELB URL健康检查Host.

我们不想禁用,ALLOWED_HOSTS因为我们希望能够信任get_host().

到目前为止,解决方案似乎是:

  • 以某种方式说服Django不关心ALLOWED_HOSTS某些特定的路径(即健康检查URL)
  • 做一些时髦的事情,比如在启动时调用EC2 info API来获取主机的FQDN并将其附加到 ALLOWED_HOSTS

这些都不是特别令人愉快.有人可以推荐更好/现有的解决方案吗?

(为避免疑问,我认为这个问题与"禁用ALLOWED_HOSTS,前端HTTPD过滤主机"的情况相同 - 我希望健康检查能够点击Django,而不是前面的HTTPD)

django amazon-web-services amazon-elastic-beanstalk

8
推荐指数
2
解决办法
1759
查看次数