You need to enable JavaScript to run this app.
导航
七层监听器获取客户端源IP
最近更新时间:2024.10.21 10:14:14首次发布时间:2021.07.09 13:29:27

本节将介绍七层监听器如何获取访问负载均衡服务的客户端源IP地址。

场景介绍

负载均衡的七层监听器(HTTP/HTTPS协议)通过对后端服务器进行配置,可以使用X-Forwarded-For方式获取来访者的真实IP地址。
真实的来访者IP会被负载均衡放在HTTP头部的X-Forwarded-For字段,字段中的第一个地址就是来访者真实IP。

前提条件

后端服务器已安装相关软件,如Nginx、Apache等。

  • Nginx:高性能的HTTP和反向代理的轻量级Web服务器,本文以Nginx 1.22.0为例。详细安装步骤可参见安装Nginx的前3步。
  • Apache:性能稳定的Web网页服务器,本文以Apache 2.4.6为例。详细安装步骤可参见安装Apache

配置步骤

  1. 参考登录Linux实例登录目标后端服务器。
  2. 执行以下命令,安装Nginx。
    yum install -y https://mirrors.ivolces.com/nginx_all/centos/7/x86_64/RPMS/nginx-1.22.0-1.el7.ngx.x86_64.rpm
  3. 执行以下命令,查看Nginx版本。
    nginx -v
    回显如下,表示安装成功。
    nginx version: nginx/1.22.0
  4. 执行以下命令,查看Nginx配置文件nginx.conf的路径。
    find / -name nginx.conf
    回显如下图所示,表示Nginx配置文件路径为“/etc/nginx/nginx.conf”。
    alt
  5. 依次执行以下命令,在配置文件目录下备份Nginx配置文件,然后打开原Nginx配置文件。
    cd /etc/nginx
    cp nginx.conf nginx.conf.bak
    vi nginx.conf
    
  6. i进入编辑模式,在以下server配置信息后添加新的配置字段和信息。
    server {
        listen 80;
        server_name localhost;
    
    需要添加的配置字段和信息:
    set_real_ip_from  100.64.0.0/10;
    real_ip_header X-Forwarded-For;
    

    说明

    您可以将代理服务器的网段添加到 set_real_ip_from <IP_cidr>,以便获取代理服务器的IP地址。例如,添加负载均衡的IP地址段(100.64.0.0/10是负载均衡服务的保留地址,其他用户无法分配到该网段内,不会存在安全风险)。多个IP地址段之间使用逗号分隔。

  7. ESC退出编辑模式,输入:wq保存并退出文件。
  8. 执行以下命令,重启Nginx。
    systemctl restart nginx.service
    
  9. 执行以下命令,查看Nginx访问日志文件access.log的路径。
    find / -name access.log
    
    回显如下图所示,表示Nginx访问日志文件的路径为“/var/log/nginx/access.log”。
    alt
  10. 执行以下命令,查看Nginx的访问日志,您可以获取真实的来访者IP。
    cat /var/log/nginx/access.log