Squid中文权威指南第三章

2009-05-13 11:59:53来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

第3章 编译和
[url=javascript:;]安装[/url]
3.1 安装之前
假如你使用unix有一段时间,并且已编译过许多其他软件包,那么只需快速的扫描本章。编译安装
[url=javascript:;]squid[/url]
的过程与安装其他软件相似。
为了编译squid,你需要一个ANSI C编译器。不要被ANSI字眼吓倒。假如你已经有一个编译器,它顺从ANSI指令,那么也一样。GNU C编译器(gcc)是很好的选择,它被广泛
[url=javascript:;]使用[/url]
。大部分操作系统在其标准安装中附带了C编译器,不过Solaris和HP-UX除外。假如你使用这样的操作系统,那可能没有安装编译器。

论上你应该在即将运行squid的机器上编译squid。安装过程侦察你的操作系统以发现特定的参数,例如可用文件描述符的数量。然而,假如你的系统没有
C编译器存在,你也许会在其他机器上编译squid,然后把二进制代码copy回来。如果操作系统不同,那么squid可能会遇到问题。假如操作系统有不
同的内核配置,squid会变得混乱。
除了C编译器,你还需要perl和awk。awk是所有unix系统的标准程序,所以你不必担心它。perl也是相当普及的,但它也许没有默认安装在你的系统上。你需要gzip程序来解压源代码发布文件。
对Solaris用户,请确认/usr/ccs/bin包含在你的PATH环境变量里,即使你使用gcc编译器。为了编译squid,make和ar程序需要在这个目录找到。
3.2 解开源代码包
在下载完源代码后,你需要在某个目录解开它。具体哪个目录无关紧要。你能解开squid在你的家目录或任何其他地方,大概需要20M的自由磁盘空间。我个人喜欢用/tmp。使用tar命令来展开源代码目录:
% cd /tmp
% tar xzvf /some/where/squid-2.5.STABLE4-src.tar.gz
一些tar程序不支持z选项,该选项自动解压gzip文件。如果这样,你需要运行如下命
令:
% gzip -dc /some/where/squid-2.5.STABLE4-src.tar.gz | tar xvf -
一旦源代码被展开,下一步通常是配置源代码树。然而,假如这是你第一次编译squid,你应确认特定的内核资源限制足够高。怎样发现,请继续。
3.3 调整内核
Squid在高负载下,需要大量的内核资源。特别的,你需要给你的系统配置比正常情况更高的文件描述符和缓存。文件描述符的限制通常很恼人。你最好在开始编译squid之前来增加这些限制的大小。

为这点,你可能为了避免重建内核的麻烦,而倾向于使用预编译的二进制版本。不幸的是,不管如何你必须重建一个新内核。squid和内核通过数据结构来交换
信息,数据结构的大小不能超过设置的文件描述符的限制。squid在运行时检查这些设置,并且使用最安全的(最小的)值。这样,即使预编译的二进制版本有
比你的内核更高的文件描述符,但还是以你系统内核的实际数值为主。
为了改编一些参数,你需要重建新内核。这个过程在不同的操作系统之间不同。假如需要,请参阅Unix系统管理员手册(Prentice Hall出版)或者你的操作系统文档。假如你正使用Linux,可能不必重建内核。
3.3.1 文件描述符
文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。Unix操作系统通常给每个进程能打开的文件数量强加一个限制。更甚的是,unix通常有一个系统级的限制。

为squid的工作方式,文件描述符的限制可能会极大的影响性能。当squid用完所有的文件描述符后,它不能接收用户新的连接。也就是说,用完文件描述
符导致拒绝服务。直到一部分当前请求完成,相应的文件和socket被关闭,squid不能接收新请求。当squid发现文件描述符短缺时,它会发布警

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Squid中文权威指南第二章

下一篇:Squid中文权威指南第四章