nginx反向代理背后的客户端ip

问题描述

我正在运行一个 Nginx 反向代理,以便能够在我的防火墙后面运行多个服务器。我注意到在我的邮件服务器上,错误日志中充满了“从 登录失败”,我想知道如何设置它以便我获得尝试登录的人/机器人的远程 IP,所以我可能会使用该信息自动阻止这些地址(例如)?

这是我当前的配置:

server {
    listen 8443 ssl http2;
    server_name mail.domain.com;

    location / {
        proxy_set_header Host $host;
        proxy_pass https://<internal ip>/;
        client_max_body_size 0;
        proxy_connect_timeout 3600;
        proxy_send_timeout 3600;
        proxy_read_timeout 3600;
        send_timeout 3600;
    }
}

解决方法

我认为您正在寻找其中之一

proxy_set_header   X-Real-IP          $remote_addr;
proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;

您可以将这些添加到 http、服务器或位置块并读取应用中的标头以过滤请求

,

刚刚发现我的邮件服务器 (Kerio) 对反向代理转发的信息没有任何作用,所以我唯一能做的就是希望有更新。