我在 Elastic Beanstalk 上部署了一个 Django 应用程序。我的应用程序的 HealthCheck 不断失败,因为 ELB HealthCheck 的 IP 未包含在我的应用程序中ALLOWED_HOSTS
设置变量。
我该如何修改ALLOWED_HOSTS
才能通过健康检查?我只会传入显式 IP 地址,但我相信这会发生变化,因此每当 IP 更改时,检查都会再次失败,直到我添加新 IP。
这是使用 Django 中间件的另一个解决方案。
姜戈的django.middleware.common.CommonMiddleware
calls request.get_host()
,它验证请求ALLOWED_HOSTS
。如果您只是想检查应用程序是否正在运行,您可以创建一个像这样的中间件。
from django.http import HttpResponse
class HealthCheckMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if request.path == '/health':
return HttpResponse('ok')
return self.get_response(request)
并把你的HealthCheckMiddleware
在...前面CommonMiddleware
in settings.py
MIDDLEWARE = [
'yourdjangoapp.middleware.HealthCheckMiddleware',
......
'django.middleware.common.CommonMiddleware',
......
]
并且您的应用程序将始终响应路径/health
with ok
只要您的应用程序正在运行,无论任何配置如何。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)