目前问题:腾讯云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 删除。