Nginx在使用varnish作缓存情况下获取用户真实ip

前言:在网站架构当中,使用varnish缓存服务器为网站做缓存,后端再使用lnmp架构已经是很平常的事情了,但是,在很多种情况下,后端的nginx服务器,无法获取到用户的真实ip.日志中总是记录着前端的varnish服务器ip。这也让一些站长很烦恼。其实nginx有这种功能的。下面我就来讲解一下,如何让nginx在使用varnish做缓存的情况下获取到用户的真实ip。
我们先弄两台测试机器
A:192.168.1.151 服务: varnishd 


B:192.168.1.150 服务:  nginx 
一,我们先安装好这两个服务。
1..在A服务器上安装varnishd
# yum install pcre* 


# wget  http://repo.varnish-cache.org/source/varnish-3.0.0.tar.gz 


# tar -xvf varnishd-3.0.0.tar.gz 


# cd varnish-3.0.0 


# ./configure --prefix=/usr/local/varnishd 


# make&&make install 


  
2,在B服务器上安装nginx
# yum install pcre* 


# wget  http://soft.vpser.net/web/nginx/nginx-1.0.10.tar.gz 


# cd nginx-1.0.10/ 


# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_realip_module 


# make && make install 
这里在nginx安装时,添加了一个 --with-http_realip_module 的模块来获取真实ip.
这样我们就在两台服务器上分别安装好了这两个服务。

相关推荐