Apache前端使用SLB 7层转发,获取客户端真实IP的方法

简介: Apache 前端使用负载均衡SLB 7层(http/https)转发,Apache如何获取客户端真实IP?

Apache 前端使用负载均衡SLB 7层(http/https)转发,Apache如何获取客户端真实IP?

答案是通过HTTP头中的X-Forwarded-For 进行获取,SLB相当于一个代理,在转发HTTP请求时,会把客户端真实IP地址,加入到 X-Forwarded-For ,ECS上的Apache,可以进行配置取出X-Forwarded-For 记录的客户端真实ip。

下面介绍Apache如何进行配置。

需要安装一个Apache的第三方模块:mod_rpaf
这个模块也有好几个版本,建议安装 github上的:https://github.com/y-ken/mod_rpaf
好处是这个版本的模块,配置时支持IP段匹配的方式
(Support for partial IP address as '192.168.' for RPAFproxy_ips.)

以Centos6.8 yum安装的Apache为例 。
其他系统的安装方法,可以参考github上说明 https://github.com/y-ken/mod_rpaf
1、执行命令安装模块mod_rpaf

yum localinstall http://y-ken.github.com/package/centos/6/x86_64/mod_rpaf-fork-0.6-5.el6.x86_64.rpm

安装后会自动生成mod_rpaf的配置文件

/etc/httpd/conf.d/rpaf.conf

模块放在

/etc/httpd/modules/mod_rpaf-2.0.so

检查配置文件和模块都有了,说明已经正常安装成功。

ls /etc/httpd/conf.d/rpaf.conf 
ls /etc/httpd/modules/mod_rpaf-2.0.so

2、接下来修改模块 mod_rpaf 的配置文件

vi  /etc/httpd/conf.d/rpaf.conf

在默认配置的基础上,修改2行配置 RPAFproxy_ips 和 RPAFsethostname

RPAFproxy_ips: 设置SLB的内网IP地址,ip地址信息参考:https://help.aliyun.com/document_detail/27660.html
设置的IP地址可以用IP段的形式,多个IP之间空格隔开,注意SLB的内网IP段掩码,其中有 10 位和 15 位的掩码 100.64.0.0/10 ,100.116.0.0/15   可以合并可以写成  100. 

RPAFsethostname: 修改为On

修改后的配置内容

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 10.158. 10.159. 10.49. 100. 100.109. 100.97. 
RPAFheader X-Forwarded-For
RPAFsethostname On
RPAFsethttps Off
RPAFsetport Off

3、修改完配置后,重启Apache

service  httpd restart

然后查看Apache的访问日志,已经可以正常记录客户端真实访问Ip。

其中 HEAD / HTTP/1.0  是SLB的健康检查,

100.116.186.58 - - [20/Sep/2017:11:42:48 +0800] "HEAD / HTTP/1.0" 200 - "-" "-"
100.116.209.46 - - [20/Sep/2017:11:42:48 +0800] "HEAD / HTTP/1.0" 200 - "-" "-"
117.73.243.50 - - [20/Sep/2017:11:42:49 +0800] "GET / HTTP/1.0" 304 - "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
![_](https://yqfile.alicdn.com/bc588aa4707c27c44637fb72f03835179654b8e8.png)
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
负载均衡 监控 算法
负载均衡的方法有哪些?
负载均衡的方法有哪些?
986 59
|
弹性计算 负载均衡 网络协议
slb健康检查方法
slb健康检查方法
569 4
|
缓存 负载均衡 算法
有哪些方法可以提高硬件负载均衡设备的性能?
有哪些方法可以提高硬件负载均衡设备的性能?
535 58
|
Java Apache C++
别再手写RPC了,Apache Thrift帮你自动生成RPC客户端及服务端代码
Thrift 是一个轻量级、跨语言的远程服务调用框架,由 Facebook 开发并贡献给 Apache。它通过 IDL 生成多种语言的 RPC 服务端和客户端代码,支持 C++、Java、Python 等。Thrift 的主要特点包括开发速度快、接口维护简单、学习成本低和多语言支持。广泛应用于 Cassandra、Hadoop 等开源项目及 Facebook、百度等公司。
别再手写RPC了,Apache Thrift帮你自动生成RPC客户端及服务端代码
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
630 4
|
负载均衡 监控 网络协议
slb健康检查路径与方法
slb健康检查路径与方法
453 4
|
弹性计算 网络协议
slb健康检查方法
slb健康检查方法
429 4
|
负载均衡 Kubernetes 区块链
随机密码生成器+阿里k8s负载均衡型服务加证书方法+移动终端设计+ico生成器等
随机密码生成器+阿里k8s负载均衡型服务加证书方法+移动终端设计+ico生成器等
394 1
|
缓存 负载均衡 算法
微服务之客户端负载均衡
微服务中的客户端负载均衡是指将负载(即工作任务或访问请求)在客户端进行分配,以决定由哪个服务实例来处理这些请求。这种负载均衡方式与服务端负载均衡相对,后者是在服务端(如服务器或负载均衡器)进行请求的分发。
502 5
|
前端开发 NoSQL 数据库
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    1350
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    627
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    491
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    490
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    594
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    782
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1537
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    355
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1248
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    598
  • 推荐镜像

    更多