Squid就是Web服务器的大神。Squid的用途和用法实在是太丰富了。可以说如果有Squid做不到的,那一定是自己不会用而已。
草根站长们也许会碰到这样的某国特色的遭遇:由于自己的疏忽忘了提前重新备案,网站的ICP备案失效了。接着麻烦就来了:IDC机房根据某些政策将该域名劫持到了一个警示页面,提示该网站在备案重新完成之前无法访问。
一般重新备案需要一周以上的时间,如果不希望这段时间丢失流量该怎么办?有一个最简单的办法,可以在国外的VPS服务器上搭建一个squid反向代理服务器,然后将网站域名临时指向这台反向代理的IP地址,这样就临时解决被屏蔽的问题。
直接访问web服务器的方式:用户浏览器–>Web服务器 通过反向代理访问的方式:用户浏览器–>Squid反向代理(境外)–>Web服务器(境内)
这样做的好处是原来的Web服务器可以保持不动,网站数据库也会被正常更新。等到ICP备案完成以后,可以轻易的恢复原来的配置。坏处是境内的用户访问境外的服务器毕竟要慢一些,还有就是web服务器的log处理要变得复杂一些了,尤其是对于访问者的IP处理。
以下是一个最简单的方向代理的squid.conf配置文件。
http_access allow all
#xxx.xxx.xxx.xxx是实体Web服务器的IP地址
http_port 80 accel defaultsite=xxx.xxx.xxx.xxx
cache_peer xxx.xxx.xxx.xxx parent 80 0 no-query originserver
never_direct allow all
注:这里实体Web服务器只有一个网站。如果是基于域名的Web虚拟机方式的话,配置起来要稍复杂一些。另外,Squid不同版本之间的配置方式区别很大,如果是Squid2.x版本,配置文件的写法有所不同。