使用阿里云NLB获取客户端原地址

简介: 本文为您介绍NLB如何获取客户端真实IP,及通过Proxy Protocol获取客户端真实IP的场景和配置教程。

1.NLB如何获取客户端真实IP

之前阿里云获取真是客户端地址需要开启pp(proxy protocol)协议,但在近期阿里云支持了原地址透传在后端服务器上获取的源IP即为客户端真实IP。无需在监听开启Proxy Protocol了,所以在这里特殊说明一下,只需要在创建服务器组的时候勾选开启客户端地址保持即可。
image.png

  • 以下场景中,NLB无法实现源地址透传,您需要在监听开启Proxy Protocol来获取客户端真实IP。
场景 说明
场景一 客户端使用IPv6地址访问NLB后端的IPv4服务

场景二 | 开启TCPSSL监听TCPSSL监听不能选择已开启客户端地址保持功能的服务器组。|
|场景三|挂载IP类型的后端服务IP类型的服务器组不支持开启客户端地址保持功能。NLB实例挂载了IP类型的后端服务时,如需获取客户端真实IP,必须在监听开启Proxy Protocol。

2.NLB通过Proxy Protocol获取客户端真实IP的配置教程

2.1 前提条件

  • 现在确保已经创建NLB实例并为该实例添加了监听。
  • 创建可用的服务器组并添加了后端服务器。
    后端服务器已部署应用服务。本文以后端服务器已部署Nginx服务为例,具体操作,请参见部署LNMP环境(CentOS 7)。

启用Proxy Protocol之前,请确保您的后端服务器支持Proxy Protocol v2版本,否则会导致新建连接失败。

说明
Nginx Plus R16及以后版本或者开源Nginx 1.13.11及以后版本支持Proxy Protocol v2版本。

如果实例的多个NLB监听挂载同一组后端服务器,必须将所有实例的监听都开启Proxy Protocol功能。

步骤一:监听开启Proxy Protocol

可以在创建监听或者修改监听时,开启Proxy Protocol。本文以创建监听为例开启Proxy Protocol,如果您已经为目标NLB实例添加监听但未开启Proxy Protocol,您可以在修改监听时开启Proxy Protocol。更多信息,请参见修改监听。

登录网络型负载均衡NLB控制台。
在顶部菜单栏,选择NLB实例所属的地域。

  • 在实例页面,找到目标实例,选择以下一种方法,打开监听配置向导。
  • 在操作列单击创建监听。
  • 单击实例ID,然后单击监听页签,在监听页签,单击监听列表上方的创建监听。
  • 单击实例ID,在实例详情页单击配置向导中的创建监听。
  • 单击实例ID,在实例详情页的右上角单击创建监听。
    在配置监听配置向导页面,完成参数配置,然后单击下一步。

单击高级配置右侧的修改,打开开启ProxyProtocol开关,开启后NLB可以通过Proxy Protocol协议携带客户端真实IP至后端服务器。

可选:在配置SSL证书配置向导页面,选择服务器证书并设置高级配置参数。

仅TCPSSL监听需要执行该步骤。更多信息,请参见创建TCPSSL监听。

在选择服务器组配置向导页面,选择已创建的服务器组,查看后端服务器信息,然后单击下一步。

在配置审核配置向导页面,确认配置信息,单击提交。

步骤二:为后端服务器的监听服务开启Proxy Protocol

在监听开启Proxy Protocol 后,后端服务器的监听服务也需要开启Proxy Protocol,否则将出现转发不通或健康检查失败等问题。

登录后端服务器,执行以下命令,开启Proxy Protocol获取客户端真实IP。

http {
   
   
    #...
    server {
   
   
        listen 80   proxy_protocol;
        listen 443  ssl proxy_protocol;
        #...
    }
}

stream {
   
   
    #...
    server {
   
   
        listen 12345 proxy_protocol;
        #...
    }
}

步骤三:获取客户端真实IP
携带客户端IPv4地址的Proxy Protocol v2二进制头格式如下所示:IPv4
image.png

携带客户端IPv6地址的Proxy Protocol v2二进制头格式如下所示:IPv6
image.png

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
域名解析 移动开发 负载均衡
阿里云DNS常见问题之DNS负载均衡调加权模式失败如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
6月前
|
负载均衡 Linux 数据库
阿里云轻量应用服务器套餐收费标准参考(组合套餐、负载均衡套餐等)
阿里云轻量应用服务器有多种套餐,在购买轻量应用服务器、轻量应用负载均衡、轻量容器服务和轻量数据库服务时,我们可以根据业务需求选择合适的套餐。本文为大家介绍阿里云轻量应用服务器套餐和镜像最新价格表以及相关收费说明。
493 0
阿里云轻量应用服务器套餐收费标准参考(组合套餐、负载均衡套餐等)
|
8月前
|
运维 负载均衡
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
223 0
|
1月前
|
负载均衡 Cloud Native 网络协议
阿里云负载均衡SLB
阿里云负载均衡SLB支持以下类型的负载均衡
55 3
|
4月前
|
域名解析 弹性计算 负载均衡
阿里云——超大流量网站的负载均衡
阿里云——超大流量网站的负载均衡
99 0
|
4月前
|
弹性计算
阿里云ECS部署openvpn server无法访问客户端私网地址。
阿里云openvpn服务端无法访问客户端网络,服务器可以ping通openvpn客户端地址,但无法访问客户端后面的网段,确认nat与路由都已添加,并且无任何问题,在服务端抓包发现并没有任何出去的报文,现在搞不定了。。。。。
|
4月前
|
XML 负载均衡 小程序
阿里云(一)云服务器ESC——负载均衡
当然,我这里只是单纯的创建和配置演示,具体在实际使用过程中,还会遇到一些很实际的问题,比如,我们需要将同一IP段访问的请求转发至同一台服务器上,避免SESSION失效等问题。 这些问题具体的解决及配置方法后面会说到。
104 0
|
7月前
|
Web App开发 Android开发 iOS开发
阿里云无影APP客户端下载_无影云电脑下载
阿里云无影APP客户端下载_无影云电脑下载,阿里云无影云电脑APP下载链接入口,支持iOS、Android、Windows、macOS和Web客户端,阿里云百科分享阿里云无影云电脑APP下载链接
412 0
|
8月前
|
安全 Cloud Native 测试技术
关于阿里云云原生网关 MSE-Higress的使用体验
阿里云云原生网关 MSE-Higress是一款基于云原生架构设计的、全新的企业级API网关产品。在云计算时代,随着企业对于云计算技术的广泛应用,API网关作为一个重要的入口和出口,已经成为企业建设大型云平台必不可少的系统组件之一。阿里云云原生网关 MSE-Higress的诞生,为企业提供了更加灵活、高效、安全、可靠的API网关解决方案。接下来,对阿里云的云原生网关 MSE-Higress的使用体验进行简单分享一下。
346 1
关于阿里云云原生网关 MSE-Higress的使用体验
|
8月前
|
弹性计算 运维 Cloud Native
阿里云产品测评赢大奖丨云原生网关 MSE-Higress
阿里云产品测评赢大奖丨云原生网关 MSE-Higress