当使用 awsvpc 网络模式转移到 ECS 时,我的 ALB 说我的所有主机都不健康,因为检查 /status/
产生 400 秒。我已将问题缩小到 ALLOWED_HOSTS 出现问题的问题。
如何让我的网络应用程序向 ELB Healthchecker 提供 200 个?
最佳答案
另一个简单的解决方案是编写自定义 MIDDLEWARE
这将在 ALLOWED_HOSTS
之前对 ELB 做出响应被检查。
中间件可以很简单:project/app/middleware.py
from django.http import HttpResponse
from django.utils.deprecation import MiddlewareMixin
class HealthCheckMiddleware(MiddlewareMixin):
def process_request(self, request):
if request.META["PATH_INFO"] == "/ping/":
return HttpResponse("pong")
settings.py
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'app.middleware.HealthCheckMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
...
]
Django 中间件引用 https://docs.djangoproject.com/en/dev/topics/http/middleware/
关于django - 在 awsvpc 网络模式下,从 aws ELB hostcheck 获取 400 以在 aws ECS 中使用 django ALLOWED_HOSTS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55718292/