利用apache搭建反向代理服务器

之前也只是用别人搭好的环境,例如当你的域名没有并备案时,你在使用SAE绑定独立域名的时候可以使用SAE提供的反向代理服务。
反向代理的工作原理就是用代理的省份接收客户端的请求,然后从实际的机器上获取数据返回给客户端。在用户看来,是透明的,他们并不知道所访问的域名在底层是怎么工作的,那么在实际的工作中,代理服务器的速度和代理服务器到真实工作的server的速度就决定了网站响应的速度,这有点类似于“木桶效应”。
那么简单的介绍下怎么在一台apache服务器上配置完成代理服务器。

    root@ubuntu:/etc/apache2/sites-enabled# cat qiuhubang.com
<VirtualHost *>
  ServerName qiuhubang.com
  ServerAlias www.qiuhubang.com
  ErrorLog /var/log/apache2/qiuhubang.error.log
  CustomLog /var/log/apache2/qiuhubang.access.log combined
  DocumentRoot /var/www/online
  Options -Indexes
  ProxyPass / http://skirt.sinaapp.com/
  ProxyPassReverse / http://skirt.sinaapp.com/
</VirtualHost>

着重注意这里的ProxyPassProxyPassReverse,意思就是我们把所有的请求都交给skirt.sinaapp.com去处理,也就是我这个博客,那么我的域名qiuhubang.com是解析到代理服务器的,可以看到:

root@ubuntu:/etc/apache2/sites-enabled# ping qiuhubang.com
PING qiuhubang.com (122.0.66.27) 56(84) bytes of data.
64 bytes from 122.0.66.27: icmp_req=1 ttl=64 time=0.025 ms
64 bytes from 122.0.66.27: icmp_req=2 ttl=64 time=0.025 ms
64 bytes from 122.0.66.27: icmp_req=3 ttl=64 time=0.018 ms
64 bytes from 122.0.66.27: icmp_req=4 ttl=64 time=0.021 ms
^C
--- qiuhubang.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.018/0.022/0.025/0.004 ms

但直接访问http://qiuhubang.com可以看到访问的是我这个博客。说明代理服务器工作了。

注意
要代理服务器能工作,apache必须有proxy*相关的模块:

root@ubuntu:/etc/apache2/mods-available# ls -al|grep proxy
-rw-r--r-- 1 root root   87 Jul 16  2012 proxy_ajp.load
-rw-r--r-- 1 root root  355 Jul 16  2012 proxy_balancer.conf
-rw-r--r-- 1 root root   97 Jul 16  2012 proxy_balancer.load
-rw-r--r-- 1 root root  803 Jul 16  2012 proxy.conf
-rw-r--r-- 1 root root   95 Jul 16  2012 proxy_connect.load
-rw-r--r-- 1 root root  141 Jul 16  2012 proxy_ftp.conf
-rw-r--r-- 1 root root   87 Jul 16  2012 proxy_ftp.load
-rw-r--r-- 1 root root   89 Jul 16  2012 proxy_http.load
-rw-r--r-- 1 root root   62 Jul 16  2012 proxy.load
-rw-r--r-- 1 root root   89 Jul 16  2012 proxy_scgi.load

一般安装是会自带,要是没有自带,需要自行安装。