全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

通过ALB获取客户端真实IP

最近更新时间:2024-04-18 19:47:01

当使用ALB监听转发流量时,可以通过X-Forwarded-For来获取客户端真实IP。本文以配置Nginx服务器为例,实践通过X-Forwarded-For字段获取客户端真实IP。

获取方法介绍

七层负载均衡(HTTP或HTTPS协议)支持在HTTP头部的X-Forwarded-For字段保留客户端真实IP信息,服务器进行相应配置后即可获取到客户端真实IP地址。

X-Forwarded-For字段格式如下:

X-Forwarded-For: <客户端真实IP,代理服务器1-IP,代理服务器2-IP,...>

当使用此方式获取客户端真实IP时,获取的第一个地址就是客户端真实IP。

操作步骤

步骤一:配置监听使用X-Forwarded-For获取源IP

  1. 登录应用型负载均衡ALB控制台

  2. 实例页面,新建一个公网ALB实例。

  3. 监听器页面,找到目标ALB实例,新建一个监听器。

  4. 新建监听器时,开启”个性化配置“,将X-Forwarded-For头字段配置为true

  5. 新建转发策略,将目标服务器组配置到负载均衡后端。

步骤二:配置后端服务器

在后端服务器KEC实例上部署Nginx,具体步骤如下:

  1. 登录云服务器控制台,新建一台KEC实例作为服务端。

  2. 使用wget命令,下载Nginx的rpm。本文以CentOS 7.6版本的操作系统为例。

    wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  3. 执行以下命令,建立Nginx的yum仓库。

    rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
  4. 执行以下命令,安装Nginx。

    yum -y install nginx
  5. 执行以下命令,启动Nginx并设置开机启动。

    systemctl start nginx
    systemctl enable nginx
  6. 在任意终端使用浏览器访问“http://KEC的公网IP地址”,显示如下页面,说明Nginx安装成功。

  7. 执行nginx -t命令查看配置文件所在路径,默认通常为 /etc/nginx/nginx.conf确保文件中设置了变量$http_x_forwarded_for,其用于记录X-Forwarded-For的值

  8. 将后端服务器KEC实例添加进负载均衡后端的服务器组。

步骤三:客户端验证后端服务器已获取客户端真实IP

  1. 登录云服务器控制台,新建一台KEC实例作为客户端。

  2. 使用vi /etc/hosts命令,在客户端的host文件中配置ALB绑定的EIP和转发策略中域名的映射关系。

  3. 客户端使用curl 域名:端口命令访问服务端。

  4. 检查Nginx日志来判断是否成功获取到了客户端的真实IP地址。使用tail -f /var/log/nginx/access.log查看日志。

    每行日志中,$http_x_forwarded_for变量对应的字段中,第一个IP地址即为客户端真实IP地址。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈