正确显示访问源IP地址的方法是在 Nginx 中进行配置

互联网 <-> nginx(反向代理)<-> nginx(Web服务器)

以这种形式来查看Web服务器端的访问日志时,只能看到反向代理的IP地址,让人感到失望。

因此,将设置正确通知访问来源的IP地址。

作为步骤:
1. 在反向代理的nginx中添加名为“X-Forwarded-For”的头信息。
2. 在Web服务器上,将“X-Forwarded-For”的值设置为客户端的IP地址。
3. 重新启动反向代理和Web服务器的nginx。

据说如果是Apache,可以使用mod-rpaf来实现,但这次使用的是nginx,所以我们将使用HttpRealipModule。
首先,我们要检查Web服务器上nginx是否已经安装并且已经包含了HttpRealipModule。

$ nginx -V
nginx version: nginx/1.7.7
built by gcc 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC)
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module **--with-http_realip_module** --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_spdy_module --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'

如果有–with-http_realip_module就可以。

由于从软件仓库使用 yum 命令安装的 nginx 在默认情况下已经被集成了,因此我们将直接进行配置。

在反向代理的一侧添加”X-Forwarded-For”头信息。

$ sudo vi /etc/nginx/nginx.conf
server {
      :
    proxy_set_header X-Forwarded-For;
    $proxy_add_x_forwarded_for;
      :
}

在Web服务器端进行以下设置。

$ sudo vi /etc/nginx/conf.d/realip.conf
set_real_ip_from   (リバースプロキシの IP アドレス);
real_ip_header     X-Forwarded-For;

将反向代理和Web服务器上的两个服务器都重新启动 Nginx。

$ sudo systemctl restart nginx

這樣就能夠記錄下訪問者的IP地址了。

广告
将在 10 秒后关闭
bannerAds