白名单内部执行健康检查的主机
项目描述
Django允许健康检查
背景
Kubernetes、负载均衡器和其他PaaS有一个健康检查的概念。这些是对您定义的端点发出的简单GET请求,告诉编排器Web工作进程是否健康。问题是这些请求来自运行您的应用程序的同一网络,使用的是非确定性的主机名或IP地址。因此,您不必使用['*']
(允许任何请求通过)来将允许的主机设置得非常开放,您只需安装此软件包即可允许这些请求发生,而不会引入比必要的更多技术/安全风险。
例如,给定以下详细信息的Kubernetes部署
#... other details
containers:
- name: app
image: registry.gitlab.com/username/cool-app/app
livenessProbe:
httpGet:
path: /health-check/
port: 8000
httpHeaders:
- name: X-Health
value: XYZ-123
initialDelaySeconds: 3
periodSeconds: 60
imagePullPolicy: Always
您可以通过简单地将其添加到您的设置中来允许这些请求通过
HEALTH_CHECK_HEADER_VALUE = 'XYZ-123'
设置
安装django-allow-healthchecks
pip3 install django-allow-healthchecks
将类添加到您的中间件中,理想情况下是列表中的第一个
MIDDLEWARE = [
'django_allow_healthchecks.middleware.ByPassForHealthChecks', # <~ Add this
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
分配您的神奇头值
HEALTH_CHECK_HEADER_VALUE = 'XYZ-Health'
注意
Python3.5+ + Django 2.2+! 上船吧!!
项目详情
关闭
django-allow-healthchecks-0.1.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1a680e82341e1e449849d244b0520c825763e149ec3a94fb10ca75bf0f58cece |
|
MD5 | faf09ac0cf03848676137e40d66ccd93 |
|
BLAKE2b-256 | f330e10d6631007eccfa5f3e4e178fffa2e7e16a7d2edb696e47e75464b49db7 |