反向代理,后端Apache获取真实IP地址

2021-02-01  本文已影响0人  新注册账号

反向代理,后端Apache获取真实IP地址

在配置负载均衡时,nginx做代理服务器,Apache做web服务,但是Apache获取不到真实用户

的IP,需要给Apache增加模块mod_rpaf

1.Apache设置:

安装gcc:yum install gcc

安装httpd-devel:yum install httpd-delvel

安装模块mod_rpaf:

#解压缩以后直接make install

wget -O mod_rpaf.zip https://github.com/gnif/mod_rpaf/archive/stable.zip

unzip mod_rpaf.zip

cd mod_rpaf-stable

make install

修改主配置文件httpd.conf日志配置模块如下:

<IfModule log_config_module>

    #replace %b with %O for more accurate logging

    <IfModule mod_logio.c>

      LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

      LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O" common

      LogFormat "%O %I" bytes

      LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

    </IfModule>

    CustomLog /var/log/httpd/access_log common

</IfModule>

在模块配置目录/etc/httpd/conf.modules.d/增加rpaf模块引用配置文件rpaf.conf,代码如下:

#mod_rpaf模块加载文件

LoadModule              rpaf_module modules/mod_rpaf.so

RPAF_Enable             On

#代理服务器的IP地址

RPAF_ProxyIPs           192.168.73.130

RPAF_SetHostName        On

RPAF_SetHTTPS           On

RPAF_SetPort            On

RPAF_ForbidIfNotProxy   Off

2.Nginx设置:

修改配置文件,在反向代理配置代码中加入参数proxy_set_header,代码参考如下:

#转发请求到负载web服务器

    location / {

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header REMOTE-HOST $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        #转发到loadbalance组web服务器

        proxy_pass http://192.168.247.134:8080;

    }

上一篇下一篇

猜你喜欢

热点阅读