后端Apache获取前端Nginx反向代理的真实IP地址 (原创贴-转载请注明出处)

====================说在前面的话====================

环境:前段Nginx是反向代理服务器;后端是Apache是WEB项目服务器

目的:让后端Apapche获取访问者真实IP地址,而非是反向代理地址

=====================现在开干======================

第一:Nginx配置

①:编辑nginx虚拟主机配置文件。(因为我引用了虚拟主机单独配置文件,所以修改的不是nginx.conf)

vim /usr/local/nginx/conf/conf.d/vhos_blog.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;
proxy_set_header X-Forwarded-Proto $scheme;

第二:Apache配置

说明:Apache获取真实IP地址有2个模块:mod_rpaf:Apache-2.2支持;Apache-2.4不支持;mod_remoteip:Apache-2.4自带模块;Apache-2.2 支持,本次 实验使用mod_remoteip

①:动态加载mod_remoteip模块

编辑httpd.conf文件

vim /usr/local/apache/conf/httpd.conf

找到如下代码,去掉#号注释使其生效

#LoadModule remoteip_module modules/mod_remoteip.so

②:在httpd.conf中加入如下代码,用Nginx的真实地址替换代码中的127.0.0.1

RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1

③:在httpd.conf中找到

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

将日志格式中的h%改成a%

LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
上一篇:Zabbix实战-简易教程系列


下一篇:Laravel 5 基础(八)- 模型、控制器、视图基础流程