前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获取CDN或Nginx的用户真实ip地址

获取CDN或Nginx的用户真实ip地址

原创
作者头像
云知识Online
发布2018-05-03 15:00:07
7.2K1
发布2018-05-03 15:00:07
举报
文章被收录于专栏:云知识学习云知识学习

目前问题:腾讯云CDN作为前端,Apache作为后端的情况下,Apache只能获取到腾讯云CDN前端的ip地址,而无法获取到用户的真实ip地址,在这种情况下,后端是Apache如何获取用户真实ip地址?

1.腾讯云CDN默认有提供X-Forwarded-For头部,用于记录客户端的真实ip地址,直接修改Apache的访问日志格式就可以使用

2.修改httpd.conf配置文件,添加X-Forwarded-For头部 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{X-Forwarded-For}i " combined LogFormat "%h %l %u %t \"%r\" %>s %b %{X-Forwarded-For}i " common

修改完成后重启Apache服务

3.成功获取用户的真实ip地址

Nginx前端:118.89.171.94 Apache后端:115.159.120.41 目前问题:Nginx作为前端,Apache作为后端的情况下,Apache只能获取到Nginx前端的ip地址,而无法获取到用户的真实ip地址,在这种情况下,后端是Apache如何获取用户真实IP地址?

1.Nginx前端配置 在nginx.conf配置文件中填加三个参数 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

修改完成后重新启动Nginx服务。

2.Apache后端配置(Apache 2.4自带remoteip模块) 在httpd.conf配置文件中添加三个参数 LoadModule remoteip_module modules/mod_remoteip.so RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 118.89.171.94 # 这里填写Nginx前端的ip地址 #RemoteIPInternalProxy 118.89.171.95 # 多个Nginx前端 #RemoteIPInternalProxy 118.89.171.96 # 多个Nginx前端

3.在Apache后端的httpd.conf配置文件修改访问日志的格式(日志格式加个%a) LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %a " combined LogFormat "%h %l %u %t \"%r\" %>s %b %a " common

修改完成后重启Apache服务。

4.成功获取用户的真实ip地址

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档