Nginx代理Apache显示真实IP

Nginx反向代理Apache的情况下让Apache获得真实IP

需要使用mod_rpaf模块

1.下载mod_rpaf-stable
https://github.com/gnif/mod_rpaf

2.安装模块

aping@AX201:/down/mod_rpaf-stable$ sudo /home/app/apache/bin/apxs -i -c -n mod_rpaf.so mod_rpaf.c

3.查看已添加的模块

aping@AX201:/fs/tmp/mod_rpaf-stable$ ls /home/app/apache/modules/mod_rpaf.so

4.配置文件中引入模块与配置使用

aping@AX201:~$ sudo vim /home/app/apache/conf/httpd.conf

rpaf_module modules/mod_rpaf.soLoadModule
RPAF_Enable             On
RPAF_ProxyIPs           127.0.0.1 192.168.0.18 #前端代理服务器
RPAF_SetHostName        On
RPAF_SetHTTPS           On
RPAF_SetPort            On
RPAF_ForbidIfNotProxy   Off

5.重启服务

aping@AX201:~$ sudo /etc/init.d/httpd restart

6.查看日志,是否已经代理前的真实客户访问IP

aping@AX201:~$ sudo tail -n 10 /home/app/apache/logs/access_log

#可以修改下访问日志查看更详细的IP访问情况

aping@AX201:~$ sudo vim /home/app/apache/conf/httpd.conf

<IfModule log_config_module> #在这个里面更改
    ...
    ...
    #LogFormat "%h %l %u %t \"%r\" %>s %b" common #先注释
    LogFormat "%a %A %h %l %m %u %U %t \"%r\" %>s %b" common #加这个
    ...
    ...

</IfModule>


7.前端Nginx的配置

# vim /home/app/nginx/nginx-1.6.2/conf/nginx.conf

server {

                listen       80;

                server_name  www.zeping.org ;

                charset utf-8 ;

 

                location / {                 

                        proxy_pass http://192.168.0.61:80;

                        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根据手机端与电脑端设备相同地址显示不同页面内容
下一篇:windows server 无法访问共享文件

相关推荐

4

发表评论

阿里云2021年 618 年中钜惠活动