安装mod_rpaf模块

很多公司都使用LANMP架构,nginx做前端进行数据分发,apache做后端进行整理数据。这个时候,nginx发送给apache的数据包的IP地址往往是内部地址。如何让apache接收到的数据包显示为外网地址呢,这就需要为apache加载mod_rpaf模块。下面就来说说加载mod_rpaf模块的方法。


  1. 首先我们需要安装httpd-devel

    #yum install -y httpd-devel

  2. 下载tar包mod_rpaf-0.6.tar.gz

    解压tar包:

    #tar -zvxf mod_rpaf-0.6.tar.gz

    #cd mod_rpaf-0.6

    #apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c


这时,在/usr/lib64/httpd/modules/mod_rpaf-2.0.so中会有该模块,接下来我们就需要让apache加载该模块。



3.编辑/etc/httpd/conf/httpd.conf

  #LoadModule rpaf_module modules/mod_rpaf-2.0.so


  #<IfModule mod_rpaf.c>


  #RPAFenable On


  #RPAFsethostname On


  #RPAFproxy_ips 127.0.0.1


  #RPAFheader X-Forwarded-For


  #</IfModule>


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


[注]上面的配置文件前加上#与不加#的任选其一。在实验中发现,如果设置加#不设置格式可以实现该功能,如果单单只设置格式不设置加#的也可实现该功能。


4.编辑/etc/nginx/nginx.conf

  

 location / {

       # root   /usr/share/nginx/html;

       # index  index.html index.htm;

       proxy_pass http://127.0.0.1:888;

       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_redirect default ;

    }


这时就配置好了,我们使用tail -f /var/log/httpd/access_log来查看apache是否可以接收到外网IP。

spacer.gifwKiom1PGbh7hbdh2AAIvO3ncMGc499.jpg192.168.1.171是我的外网访问地址,192.168.1.145是我的服务器地址。在设置之前,日志显示apache接收到的是192.168.1.145这个内网地址。设置之后显示的是访问的192.168.1.171这个外网地址。

你可能感兴趣的:(安装,mod,rpaf)