首页 > 代码库 > nginx做反向负载均衡,后端服务器获取真实客户端ip

nginx做反向负载均衡,后端服务器获取真实客户端ip

开门见山,操作如下:

首先,在前端nginx上需要做如下配置:

   location /

       {

           proxy_pass http://test1;

            proxy_set_hearder host $host;

           proxy_set_header X-Real_IP $remoute_addr;

           proxy_set_header $proxy_add_x_forwarded_for;

       };

nginx会在把请求转向后台real-server前把http报头中的ip地址进行替换;这样操作完成后,real-server也需要做一些操作;

1、后台real-server为nginx的,需要nginx支持http_realip_module,在编译时需要添加--with-http_realip_module,然后配置文件中添加以下几行,其中set_real_ip_from可以多行,具体详解后面补充

set_real_ip_from   192.168.10.0/24;

real_ip_header     X-Real-IP;


2、后台real-server为apache的,需要mod_rpaf-0.6.tar.gz这个模块,下载后

tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/www/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

在 httpd.conf中添加
LoadModule rpaf_module libexec/apache2/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 192.168.1.1 #这个是前段的IP,可不是后端的IP哦
RPAFheader X-Forwarded-For

重启服务后,即可生效。