用nginx做反向代理和缓存并且能让apache服务器得到真实的客户端地址

用nginx做反向代理和缓存并且能让apache服务器得到真实的客户端地址

需求
一个网站,客户主要分布在亚洲其它国家和地区,如日本台湾新加坡马来西亚印度香港等。而服务器放在上海。国外用户访问速度不快。现在需要提高国外用户的访问速度。
最 终定下来的方案,就是在多个国家租用最便宜的vps做反向代理和缓存,通过智能解析把不同国家的访问定位到不通的vps上。这个简单来说就是自己做了个 cdn网络。这个方案里涉及到很多问题。比如各vps的健康检查和故障转移。这里只讨论用nginx做反向代理和缓存的几个问题
环境
1.国外vps一台,运行nginx,做缓存和反向代理
2.国内服务器一台,运行apache,运行一个php+mysql开发的站点
vps上nginx的配置
nginx用nginx-0.7.67.tar.gz

引用

cd /usr/src
wget http://nginx.org/download/nginx-0.7.67.tar.gz
tar xzf nginx-0.7.67.tar.gz
cd nginx-0.7.67
./configure –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_realip_module
make
make install

配置文件的主要部分如下

引用

proxy_temp_path   /data/nginx_proxy_temp;
proxy_cache_path /data/nginx_proxy_cache levels=1:2 keys_zone=cache:50m inactive=1d max_size=3000m;
upstream back_end {
server 192.168.0.2:80;
}
server {
listen 80;
server_name www.admin99.net;
location / {
proxy_cache cache;
proxy_cache_valid  200 304 12h;
proxy_cache_key $host$uri$is_args$args;
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_pass http://back_end;
expires      1d;
}
location ~ .*\.(php|html)?$
{
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_pass http://back_end;
}
}

apache用的是2.0.63 为了能得到用户的真实ip,在编译好之后,要增加一个模块mod_rpaf

引用

cd /usr/src
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

在apache的配置文件中加上一段

引用

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 192.168.0.1
RPAFheader X-Forwarded-For

这样就能看到访问者的真实ip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值