跳转到主要内容

白名单内部执行健康检查的主机

项目描述

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 (5.7 kB 查看哈希值)

上传时间

支持