应用缓冲服务器为网站提速

由 徐永久 发表于 2001年10月16日 20:57。

本文对中小型企业局域网 采用 Linux 作缓冲服务器提出了解决方案。

世界已经步入 Internet 计算的时代,而这个时代的代表就是Web 服务。几年前,我们把 WWW 叫做 World Wide Wait,现在的形势虽然有所好转,但是我们浏览很多网站依然可以体会到这种感觉。笔者今天要讲的是采用 Linux 下的开放源码产品实现缓冲服务器。让我们不再“享受”等待的痛苦。

我们的缓冲服务器有两种实现模式。一种是在局域网的实现,用来加速局域网到外部 Internet 的连接。第二种是把服务器假设在Web 服务器和Internet 之间。它能缓冲客户对Web 服务器的请求,而减轻Web 服务器的负荷。性能的具体提升数值随实际网络流量的变化而变化,但是在实验室下测得的数据能达到54% 的缓冲。这意味着缓冲服务器为Web 服务器挑了一半的担子!


一、安装

我们采用的产品为 Squid ,这是一个开放源码的项目,你可以从
http://www.squid-cache.org/ 免费下载。

Squid 是一个专吃内存的家伙,而对 CPU 却没有什么特别嗜好。所以,配置的服务器最好要有 512M 内存,CPU 可以是 Celeron 566 左右就可以了。当然因为要缓冲数据,所以对硬盘的要求也要稍微高一点,你可以采用容量为 20GB,转速为7200 转的硬盘。

二、设置

很多服务器都带有 Web 界面管理程序,例如 Webmin 或者有些本身就带有 Squid 的图形界面管理工具。建议初学者使用这些工具来管理Squid ,对于那些老鸟,可以直接修改 /etc/squid/squid.conf 文件来做配置。但是无论何种方式,都需要修改几个核心参数。

首先需要指定 Squid 侦听的 HTTP 端口,我们设定为 80。你可以设定为其他任何端口,但是要知道 1024 以下的端口需要 root 权限。

http_port 80

然后,需要指定缓冲存放位置,缺省为 /var/spool/squid/,你可以指定为任意地方。也可以为多个磁盘指定多个cache_dir 选项。路径后面的参数分别为缓冲区大小(MB),可以建立的第一层和第二层的目录数目。

cache_dir /var/spool/squid/ 100 16 256

另外还可以设置Email 通知的邮件地址,以便服务器宕机时发送电子邮件。

cache_mgr your_emailaddress

为了安全考虑,避免用 root 权限启动 Squid ,采用以下选项:

cache_effective_user squid
cache_effective_group squid

建议你建立单独的 squid 用户和组,来管理 squid。如果安装Red Hat 7.0 时,选择安装Squid ,系统会帮你建立这个用户。

三、安全
本文不是来讨论安全问题的,因此,不展开讨论怎样关注缓冲服务器背后的Web 服务器以及数据库服务器的安全,但是我们必须知道作为一台服务器,需要有一个基本的安全策略来保护自己的网络。下面的例子就可以实现这样的安全:

acl my-iplist-1 src 192.168.1.0/24
acl my-iplist-2 src 10.0.0.0/255.255.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0
http_access allow my-iplist-1
http_access allow my-iplist-2
icp_access allow my-iplist-1
icp_access allow my-iplist-2
http_access allow localhost
http_access deny all
always_direct allow my-iplist-1
always_direct allow my-iplist-2
never_direct allow all

如果有你安装了防火墙,需要有特别的考虑的话,可以参考 Squid 的手册:

http://squid-docs.sourceforge.net/latest/html/x812.htm

四、目录

到此为止,我们还没有建立存放缓冲数据的目录,下面来建立目录:

# mkdir /var/spool/squid/
# chown squid.squid /var/spool/squid/
# chmod 770 /var/spool/squid/

用下面的命令来初始化目录:

# squid -z

五、结论

这样,整个服务器的设置就到此结束,为了在机器启动时能自动启动缓冲服务器,我们需要设置好启动脚本。这里就不多赘述了。