一个非常高效和简单的django中间件,可以从可信的负载平衡器发送的报头获取真实的ip地址
django-behind-lb的Python项目详细描述
在lb后面是一个非常简单和高效的django中间件 当项目运行在可信负载之后时的客户端IP地址 平衡器。
它允许指定激活中间件的路径,例如 /或/a/specific/path。路径必须在变量中指定 BEHIND_LB_PATH在您的settings.py中。
它与任何发送公共远程地址的负载平衡器一起工作 标题中固定的相对位置(第一,第二,…,最后)。 例如,amazon elb把它放在最后一个位置,google compute 倒数第二个负载平衡器。位置必须 在settings.BEHIND_LB_POSITION中指定。
快速启动
安装软件包:
pip install django-behind-lb
只需将django-behind-lb添加到INSTALLED_APPS设置中,如下所示:
MIDDLEWARE_CLASSES = ( 'behind_lb.middleware.BehindLB', ...
在settings.py中配置路径和位置:
BEHIND_LB_PATH = "/" BEHIND_LB_POSITION = -2 # For Google Compute Engine
尝试读取视图类中的默认request.META['REMOTE_ADDR']。它 应该读取真正的客户端IP。
位置选项
BEHIND_LB_PATH值指定实际IP地址在 X-Forwarded-For header,其中0是第一个(或“左”),1是第二个,-2是 倒数第二个位置,最后一个是-1。示例:
BEHIND_LB_POSITION = 0 # First BEHIND_LB_POSITION = -2 # Next to last, for Google Compute Engine LB BEHIND_LB_POSITION = -1 # Last, for Amazon EC2 LB