我正在通过Elastic Beanstalk环境运行DJango应用程序,该环境设置为在服务器负载达到某个级别时扩展到多个实例。
Django APP被用作REST API(DRF),我安装了django-cors-headers [https://github.com/ottoyiu/django-cors-headers] app来处理来自Ionic Application的请求。正在通过Angular2的http框架提出请求,该框架会发出飞行前请求。
当只有一个实例在运行时,应用程序和请求可以正常工作。但是,当Elastic Beanstalk启动第二台服务器时,因为它已达到限制,所有请求都会开始失败。不需要身份验证的请求与请求失败的请求失败的请求相同。如果我通过Postman提出请求,它可以正常工作。所以它必须与CORS配置有关。
API使用https://github.com/manosim/django-rest-framework-api-key框架提供API密钥,因此这也是设置的一部分。
我一直在浏览网页,并尝试了几乎所有我能找到的东西。我尝试通过ebextensions在apache配置中手动设置Headers。我查看了ngnix设置,但不确定那里可以做些什么。
答案 0 :(得分:0)
我终于解决了这个问题。它根本与CORS无关。问题围绕Elastic Load Balancer运行状况。在成功安装和启动Django应用程序之前,健康状态立即恢复正常。因此,我的要求是试图找到一个甚至没有运行的服务。为解决此问题,我为ELB创建了自定义运行状况检查。