亚马逊ELB无法正常工作并丢失500服务器错误

时间:2013-10-10 13:10:40

标签: django amazon-ec2 amazon-elb

  • 创建了带有2个EC2微实例的Amazon Load Balancer。
  • 2个EC2微型实例正在使用python服务。
  • 服务正常运行并在直接呼叫时响应
  • 当我们通过Load Balancer的公共DNS调用它们时,不运行服务。 ELB抛出500错误。

直接呼叫EC2实例服务的示例: ec2-54-200-1-2.us-west-2.compute.amazonaws.com/myservice ==>返回数据

调用Load Balancer的示例: test-12345678.us-west-2.elb.amazonaws.com/myservice ==>返回500错误

进一步的观点: DJANGO属性ALLOWED_HOSTS设置为['*']但不起作用。 使用HTTP协议,即将负载均衡器协议= HTTP与端口80映射到实例协议= HTTP,端口80

1 个答案:

答案 0 :(得分:1)

我承认这是一个非常古老的问题,但我使用了一个我认为更好的解决方案,并且不会通过设置ALLOWED_HOSTS = ['*']来危害系统的安全性。

这是我写的一个中间件类,我认为可以随意重用。

它继承自CommonMiddleware,应该在CommonMiddleware的{​​{1}}设置中使用而不是MIDDLEWARE_CLASSES

settings.py

当然我意识到这种机制完全绕过了CommonMiddleware,但只有在请求心跳路径时才会这样做,所以我觉得这需要付出一点代价。

希望别人觉得它很有用。