squid的替代品,varnish

Posted by Smeagol | Posted in 服务器相关 | Posted on 28-01-2011

Tagged Under : ,

Varnish是一款 高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (vg.no) 使用3台Varnish代替了原来的12台squid,性能比以前更好。

Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算 机系统的内存除了主存外,还包括了cpu内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。

官方网站

原来squid已经老了,这已经是2008年的事情了。

用squid 2.7简单配置网页加速服务器(透明反向代理)

Posted by Smeagol | Posted in linux | Posted on 27-01-2011

Tagged Under : ,

参考资料:
squid权威指南 (这里是2.5版的squid ,虽然是老版本的,但是是中文的,而且写的很好,对于概念的理解很有好处,不过一些配置方法已经了老了,不适用于现在的2.7稳定版了。)

squid配置案例 (这是官方的一些配置资料,是最新版的。但是全是英文的,英文好的朋友可以是直接看这里文档,里面都是一些配置实例。)

下面主要讲一下用squid 2.7 stable 版做透明反向代理,官方称Website Accelerator,这里有一些概念的问题,大家可以查看上面给出的squid权威指南。当squid用做透明反向代理的时候,占用的是服务器的80端口,而真正的web服务器会绑定在127.0.0.1:80 上。这里我用的是apache。之后讲到如何配置它。所以当客户端(浏览器)访问服务器时,先经过squid的缓存,然后再访问web服务器的。当然,如果squid和web服务器不在同一台服务器上,那么上面的127.0.0.1要改成web服务器的ip,而squid只做代理和缓存用。对于客户端来说,访问web服务器时和没有squid的效果是一样的,所以这里的squid是透明的,顾名思义。

具体配置方法:

操作系统:ubuntu server 10.04

安装squid很简单:

sudo apt-get install squid

找到squid的配置文件/etc/squid/squid.conf,大多数的配置都将在这个文件里。
我们先要打开代理端口,找到配置http_port 的地方(注释),插入如下配置:

http_port 192.168.0.252:80 accel defaultsite=127.0.0.1 vhost

192.168.0.252:80要改成你的本机ip
accel  告诉 squid 以web服务器的模式来接收发送过来的请求。
defaultsite=127.0.0.1 告诉squid 如果请求的域名不在代理之列,将发送127.0.0.1作为host header给真正的web服务器。127.0.0.1可改为其他的。如果web服务器上有很多的虚拟主机,那么vhost是被需要的。

接下来我们要告诉squid,哪里可以找到真正的web服务器。找到cache_peer的部分,插入如下配置:

cache_peer 127.0.0.1 parent 80 0 no-query originserver name=a

上面的127.0.0.1要改成真正的web服务器的ip,我这里用的是同一台服务器,所以这里是127.0.0.1 。name=a 这里a是名字,可以自己取,标志这命令的名称用,之后会有访问控制,要用到这里的名字。

下面我们定义访问控制,使上面的这些命令正常的工作。

acl to_localhost dst 127.0.0.1

acl是规则,to_localhost是规则名称,dst为目标地址,127.0.0.1你懂的。
大意为:以127.0.0.1为目标的请求。

再找到配置http_access的地方,插入:

http_access allow to_localhost

意思是允许to_localhost的http访问。

最后找到cache_peer_access的地方,插入如下配置:
cache_peer_access a allow to_localhost
cache_peer_access a deny all
这里的a,就是上面的定义的name=a 。意为:允许to_localhost访问被定义为a的缓存点(cache_peer),to_localhost就是上面的定义的目标为127.0.0.1的请求。经过这样定义,http访问被允许,缓存点(cache_peer)也被允许。

我们可以用同样的方式来定义源地址:
acl localnet src 192.168.0.0/16
http_access allow localnet
这样定义的话只有本地局域网内的机器可以访问squid。
默认的squid.conf已经有很多定义在里面的了,all表示所有地址,src表示源地址。
大家可以根据自己想要的来定义规则。

经过以上配置之后,http请求将经过squid缓存,再访问web服务器。下面讲下apache的配置。这里是以ubuntu为例,其他linux只要找到配置文

件的相应的位置既可:
找到/etc/apache2/ports.conf文件,将:
Listen 80 改为 Listen 127.0.0.1:80
这样apache就只监听回环地址的80端口了,不会和本机ip的80端口冲突。

调试squid的配置,可以不用重启squid,用下面命令:
squid -k parse (查看配置文件语法是否有误)
squid -k reconfigure (重新载入配置文件,即时生效)

好了,配置方法到这里就结束了,大家有什么问题可以在评论里留言。小弟才疏学浅,难免有表达不清的地方,还请大家指正。

godaddy最新优惠码,大于75美元的订单便宜20%

Posted by Smeagol | Posted in Uncategorized | Posted on 27-01-2011

Tagged Under :

This special offer expires 2/9/2011, so start shopping now! Use source code fbfhome20 to get 20% OFF* your order of $75 or more .

大于75美元的订单便宜20%,优惠码fbfhome20

帝国cms,1.5版ucenter接口文件uc.php

Posted by Smeagol | Posted in Uncategorized | Posted on 22-01-2011

Tagged Under :

帝国cms,1.5版ucenter接口文件uc.php

重写了下原来的uc.php,之前只有1.0.0版。不知道有没有人放出过。

不过我没找到,于是自己写了个。

点击下载

debian 5 安装配置snmp 来监控

Posted by Smeagol | Posted in linux, 服务器相关 | Posted on 21-01-2011

Tagged Under :

debian 5 装 snmp 很简单:

apt-get install snmpd 就可以了。

配置:
找到/etc/snmp/snmpd.conf 这个文件,然后找到

#com2sec paranoid  default         public

这行并且注释掉

再下面这行的注释去掉,并且用自己的字符替换掉****,默认是public :

com2sec readonly  default          *****

这里如果要用指定的ip来做监控的话,要把default改成指定的ip如:

com2sec readonly  0.0.0.0          *****

多个ip的,可以这样指定:

com2sec readonly  127.0.0.1          *****
com2sec readonly  192.168.1.10          *****

删除/etc/default/snmpd中,127.0.0.1   ,位于:

SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1′

然后重启snmpd

/etc/init.d/snmpd restart

大型网站架构演变和知识体系

Posted by Smeagol | Posted in 服务器相关 | Posted on 17-01-2011

http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html

不错的一篇文章,先转过来放在这里。