一个困扰了我很久的问题:就是在一个静态IP和固定的单一Port 80的Gateway后面把两个或者三个不同的服务器的Web Application一起提供出来,IIS和Apache都可以根据URL来确认什么Site用什么代码,但似乎IIS不能做Proxy,Apache可以但没有研究过,虽然别人也提点过Squid,但当时没有条件和强烈需求就放下了,这次Server的重建让这个问题重新提到了议事日程上。
早上在Whirlpool论坛上发了个帖子,不一会,N多回应啊,大家讨论的非常热烈且解决方案非常中肯实用,甚至每个方案的适用情况和利弊等都有解释,很感谢这些高手的指点,看到大家说的那么热烈,我心里不禁非常痒痒,可是上班一直特别忙,所以就没有来配置这个Squid,等下班了,吃晚饭,赶快上Google和Squid的官方网站一顿狂搜索,然后就开始仔细阅读,虽然这个软件很复杂,但第一次配置还是需要很多背景知识的。
到了7点中我犹豫了半天,终于放弃今天的羽毛球,继续阅读。两个小时后之后终于有点信心了,打开这个叁千多行的squid.conf开始配置,也许自己有点太贪了,一下改了好多默认选项,很多东西我其实不怎么清楚怎么工作,不过关于这个Reverse Proxy的Http accelerator的部分还是有点信心的,改完之后长出了口气,产生Cache目录,oops,Failed。。。查了一下Access.log好在错误信息还比较详尽,打开conf文件把自己不明白和不怎么用的都comment掉,再来。。哇,世界终于清静了。。。
大家可以通过网上的文章很轻松的配置一个Squid Proxy服务器,我这里只是谈一下作为Reverse proxy的配置,除了文档上谈及的Http accelerator部分的5,6个选项之外还要加Acl的Permission选项,下面是例子,加上你要加速的域名:
acl acceleratedHostA dstdomain .example1.com
acl acceleratedHostB dstdomain .example1.info
acl acceleratedHostC dstdomain .example1.be
然后加上要加速的协议和port:
acl acceleratedProtocol protocol HTTP
acl acceleratedPort port 80
然后加上允许域名的Access:
http_access allow acceleratedProtocol acceleratedPort acceleratedHostA
http_access allow acceleratedProtocol acceleratedPort acceleratedHostB
http_access allow acceleratedProtocol acceleratedPort acceleratedHostC
这样就搞定所有的permission。打开IE,输入URL,Yeeeeeeeeeeees,工作啦,看了一下表,正好午夜,4个小时的努力终于有了回报,呵呵。。
文章评论