【问题标题】:nginx is giving django-axes (access logging middleware) a null ip addressnginx 给 django-axes(访问日志中间件)一个空 IP 地址
【发布时间】:2017-01-04 08:45:13
【问题描述】:

我无法访问我网站的登录页面。它有 django-axes 访问日志中间件在监视它:

from axes.decorators import watch_login
@method_decorator(watch_login, name="dispatch")
class UserLogin(FormView): ...

对登录页面的 GET 请求会导致:

/path/to/login/ 处的数据错误

inet 类型的输入语法无效:“b''”

回溯中的IP地址(根据错误)是b'';所以我猜是nginx proxy is not passing this

这是我的 nginx sites-available 配置的摘录(调试时我没有启用 ssl):

upstream app_servers {
    server unix:/tmp/gunicorn.sock;
}

location / {
    proxy_pass          http://app_servers;
    proxy_redirect      off;
    real_ip_header      X-Real-IP;
    proxy_set_header    Host                    $http_host;
    proxy_set_header    User-Agent              $http_user_agent;
    proxy_set_header    X-Real-IP               $remote_addr;
    proxy_set_header    X-Forwarded-For         $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto       $scheme;
}

我的 nginx 配置中缺少什么以使 django-axes 正常工作?

【问题讨论】:

    标签: django nginx


    【解决方案1】:

    如果有人现在遇到这个问题,只是一个更新。 AXES_BEHIND_REVERSE_PROXY 一直是deprecated

    以下设置对我有用:

    AXES_META_PRECEDENCE_ORDER = [
       'HTTP_X_FORWARDED_FOR',
       'REMOTE_ADDR',
    ]
    

    docs 也提到了 AXES_PROXY_COUNT。但是,对于我的设置,将默认设置保留为 None 对我有用。

    我的Nginx设置如下:

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8000;
    }
    

    【讨论】:

      【解决方案2】:

      很可能是你忘记设置AXES_BEHIND_REVERSE_PROXY。在您的 django 设置中将其设置为 True 应该允许 django-axes 看到 HTTP_X_FORWARDED_FOR 标头。

      • AXES_BEHIND_REVERSE_PROXY:如果是True,它将寻找IP地址 来自AXES_REVERSE_PROXY_HEADER 定义的标头。请确保 如果您启用此设置来配置您的代理以设置正确的 标头的值,否则您可能会被设置为攻击 标题直接在每个请求中。默认值:False

      • AXES_REVERSE_PROXY_HEADER: 如果AXES_BEHIND_REVERSE_PROXYTrue, 它将从此标头中查找 IP 地址。默认: HTTP_X_FORWARDED_FOR

      【讨论】:

      • 成功了!谢谢;上次我使用轴是 0.4 版本之前,当时没有必要手动指定它,我还没有接受更改。
      猜你喜欢
      • 1970-01-01
      • 2015-05-30
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多