首页/aliyun服务器代维/使用LVS或者阿里云的SLB后如何获取访客真实的IP地址
aliyun服务器代维

使用LVS或者阿里云的SLB后如何获取访客真实的IP地址

阿里云服务器使用SLB后如何获取真实IP(使用LVS等负载均衡方案之后如何获取真实的IP)
使用7层负载均衡之后最终realserver的访问都是由proxy发起的,所以日志中记录的访问IP都是proxy的IP,这时候如果想获取真实IP,阿里云官方提供了使用 http_realip_module或者mod_rpaf来获取真实IP(这种办法除了可以获取IP记录到日志中,还可以禁止特定IP访问站点),这种方法有个弊病就是需要配置文件里面把proxy的请求IP全写进去,而且如果SLB的服务器集群扩容,而你不知道, 那么很可惜扩容的服务器发起的请求,在您的日志中记录的都是他的服务器IP而不是访客的ip~~
其实不用那么复杂,SLB服务器会把客户的真实IP记录在http头X_FORWARDED_FOR 字段中。
实际apache和nginx都是可以直接读取http头中任何字段值的,所以可以在logformat中配置X_FORWARDED_FOR 这个字段,测试情况如下:
Apache:
日志格式配置
ee
1 LogFormat "'realip:'%{X-Forwarded-For}i 'slbip:'%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
重启apache后测试可以获取到真实IP,情况如下:
2
其中有realip还是-的记录,记录是SLB服务器健康检查的记录并不是客户访问的记录,可以忽略。
Nginx
日志配置情况如下:
ff
1 log_format  main  'realip:$http_x_forwarded_for slbip:$remote_addr - $remote_user [$time_local] "$request" '
2 '$status $body_bytes_sent "$http_referer" '
3 '"$http_user_agent"';
测试后可以获取真实的IP,情况如下:
gg
同上,没获取到realip的都是健康检查的记录,不是客户访问的记录,可以忽略。
这个方法非阿里云官方提供的,我在自己的几台服务器测试都完全没问题,总之,如果这种方法你测试可以满足你的需求,那么你可以尝试一下~~
SERVICE

相关服务与公开报价

以下为三家云市场官方店铺的在售商品,价格取自平台页面、可核验。 点击直达商品页,由平台完成下单与交付。

按本文主题推荐的云市场在售服务与公开报价
商品图 服务 / 商品 云市场 公开报价 操作
Linux服务器环境部署(可以安装管理面板) Linux服务器环境部署(可以安装管理面板) 阿里云 ¥300 去商品页
服务器代维 网站代维 服务器维护 linux windows 服务器代维 网站代维 服务器维护 linux windows 阿里云 ¥3000 去商品页
成都本地linux服务器问题上门服务 成都本地linux服务器问题上门服务 阿里云 ¥1000 去商品页
linux windows虚拟主机网站域名301重定向跳转 linux windows虚拟主机网站域名301重定向跳转 腾讯云 ¥1 / 次 去商品页
针对CentOS 7 8系统迁移服务 针对CentOS 7 8系统迁移服务 腾讯云 ¥500 / 次 去商品页
CentOS系统迁移TencentOS服务 CentOS系统迁移TencentOS服务 腾讯云 ¥500 / 次 去商品页
BT 宝塔 Linux 面板安装服务 BT 宝塔 Linux 面板安装服务 华为云 ¥100 / 次 去商品页
磁盘扩容 · 数据盘分区挂载(Linux / Windows) 磁盘扩容 · 数据盘分区挂载(Linux / Windows) 华为云 ¥200 / 次 去商品页
网站搬家 · 虚拟主机空间搬家 · 网站上云 · 网站迁移 网站搬家 · 虚拟主机空间搬家 · 网站上云 · 网站迁移 华为云 ¥500 / 次 去商品页
FREE CHECKUP

先做一次免费服务器体检

我们会在 1 个工作日内给出问题清单与处置建议 —— 做不做代维都没关系。

135 410 16684
工作日 Mon – Fri 10:00 – 22:00 · 紧急故障 7×24 响应
立即拨打
CONTACT

在线留言

有什么可以帮您?

带 * 为必填