| 《Squid 中文权威指南》续 |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-24 11:41:20
|
译者序: 本人在工作中维护着数台Squid 服务器,多次参阅Duane Wessels(他也是Squid 的创始人)的这本书,原书名是"Squid: The Definitive Guide",由O'Reilly 出版。我在业余时间把它翻译成中文,希望对中文Squid 用户有所帮助。对普通的单位上网用户,Squid 可充当代理服务器;而对Sina,NetEase 这样的大型站点,Squid 又充当WEB 加速器。这两个角色它都扮演得异常优秀。窗外繁星点点,开源的世界亦如这星空般美丽,而Squid 是其中耀眼的一颗星。 对本译版有任何问题,请跟我联系,我的Email是:yonghua_peng@yahoo.com.cn 彭勇华
第5章 运行Squid
5.1 squid 命令行选项
在开始其他事情之前,让我们先看一下squid 的命令行选项。这里的许多选项你从不会使用,另外有些仅仅在调试问题时有用。
-a port 指定新的http_port 值。该选项覆盖了来自squid.conf 的值。然而请注意,你能在squid.conf里指定多个值。-a 选项仅仅覆盖配置文件里的第一个值。(该选项使用字母a 是因为在Harvest cache 里,HTTP 端口被叫做ASCII 端口)
-d level 让squid 将它的调试信息写到标准错误(假如配置了,就是cache.log 和syslog)。level参数指定了显示在标准错误里的消息的最大等级。在多数情况下,d1 工作良好。请见16.2章关于调试等级的描述。
-f file 指定另一个配置文件。
-h 显示用法。
-k function 指示squid 执行不同的管理功能。功能参数是下列之一:reconfigure,rotate,shutdown,interrupt,kill,debug,check,or parse。 + reconfigure 导致运行中的squid 重新读取配置文件。 + rotate导致squid 滚动它的日志,这包括了关闭日志,重命名,和再次打开它们。 + shutdown 发送关闭squid 进程的信号。 + interrupt 立刻关闭squid,不必等待活动会话完成。 + kill 发送KILL 信号给squid,这是关闭squid 的最后保证。 + debug 将squid 设置成完全的调试模式,假如你的cache 很忙,它能迅速的用完你的磁盘空间。 + check 简单的检查运行中的squid 进程,返回的值显示squid 是否在运行。 + 最后,parse 简单的解析squid.conf 文件,如果配置文件包含错误,进程返回非零值。
-s 激活将日志记录到syslog 进程。squid 使用LOCAL4 syslog 设备。0 级别调试信息以优先级LOG_WARNING 被记录,1 级别消息以LOG_NOTICE 被记录。更高级的调试信息不会被发送到syslogd.你可以在/etc/syslogd.conf 文件里使用如下接口: local4.warning /var/log/squid.log
-u port 指定另一个ICP 端口号,覆盖掉squid.conf 文件里的icp_port。
-v 打印版本信息。
-z 初始化cache,或者交换,目录。在首次运行squid,或者增加新的cache 目录时,你必须使用该选项。
-C 阻止安装某些信号句柄,它们捕获特定的致命信号例如SIGBUS 和SIGSEGV。正常的,这些信号被squid 捕获,以便它能干净的关闭。然而,捕获这些信号可能让以后调试问题困难。使用该选项,致命的信号导致它们的默认动作,通常是coredump。
-D 禁止初始化DNS 测试。正常情况下,squid 直到验证它的DNS 可用才能启动。该选项阻止了这样的检测。你也能在squid.conf 文件里改变或删除dns_testnames 选项。
-F 让squid 拒绝所有的请求,直到它重新建立起存储元数据。假如你的系统很忙,该选项可以减短重建存储元数据的时间。然而,如果你的cache 很大,重建过程可能会花费很长的时间。
-N 阻止squid 变成后台服务进程。
-R 阻止squid 在绑定HTTP 端口之前使用SO_REUSEADDR 选项。
-V 激活虚拟主机加速模式。类似于squid.conf 文件里的httpd_accel_host virtual 指令。
-X 强迫完整调试模式,如你在squid.conf 文件里指定debug_options ALL,9 一样。
-Y 在重建存储元数据时,返回ICP_MISS_NOFETCH 代替ICP_MISS.忙碌的父cache 在重建时,该选项可以导致最少的负载。请见10.6.1.2 章。
5.2 对配置文件查错
在开启squid 之前,你应该谨慎的验证配置文件。这点容易做到,运行如下命令即可: %squid -k parse
假如你看不到输出,配置文件有效,你能继续后面的步骤。
然而,如果配置文件包含错误,squid 会告诉你: squid.conf line 62: http_access allow okay2 aclParseAccessLine: ACL name 'okay2' not found.
这里你可以看到,62 行的http_access 指令指向的ACL 不存在。有时候错误信息很少: FATAL: Bungled squid.conf line 76: memory_pools
在这个情形里,我们忘记了在76 行的memory_pools 指令后放置on 或off。
建议你养成习惯:在每次修改配置文件后,使用squid -k parse。假如你不愿麻烦,并且你的配置文件有错误,squid 会告诉你关于它们而且拒绝启动。假如你管理着大量的cache,也许你会编辑脚本来自动启动,停止和重配置squid。你能在脚本里使用该功能,来确认配置文件是有效的。
5.3 初始化cache 目录
在初次运行squid 之前,或者无论何时你增加了新的cache_dir,你必须初始化cache 目录。命令很简单: %squid –z
对UFS 相关的存储机制(ufs,aufs,and diskd;见第8 章),该命令在每个cache_dir 下面创建了所需的子目录。你不必担心squid 会破坏你的当前cache 目录(如果有的话)。
在该阶段属主和许可权是通常遇到的问题。squid 在特定的用户ID 下运行,这在squid.conf 文件里的cache_effective_user 里指定。用户ID 必须对每个cache_dir 目录有读和写权限。否则,你将看到如下信息: Creating Swap Directories FATAL: Failed to make swap directory /usr/local/squid/var/cache/00: (13) Permission denied
在这样的情形下,你该确认/usr/local/squid/var/cache 目录的所有组成都可被squid.conf给定的用户ID 访问。最终的组件--cache 目录--必须对该用户ID 可写。
cache 目录初始化可能花费一些时间,依赖于cache 目录的大小和数量,以及磁盘驱动器的速度。假如你想观察这个过程,请使用-X 选项: %squid –zX
5.4 在终端窗口里测试squid
一旦你已经初始化cache 目录,就可以在终端窗口里运行squid,将日志记录到标准错误。这样,你能轻易的定位任何错误或问题,并且确认squid 是否成功启动。使用-N 选项来保持squid 在前台运行,-d1 选项在标准错误里显示1 级别的调试信息。 %squid -N -d1
你将看到类似于以下的输出: 2003/09/29 12:57:52| Starting Squid Cache version 2.5.STABLE4 for i386-unknown-freebsd4.8... 2003/09/29 12:57:52| Process ID 294 2003/09/29 12:57:52| With 1064 file descriptors available 2003/09/29 12:57:52| DNS Socket created on FD 4 2003/09/29 12:57:52| Adding nameserver 206.107.176.2 from /etc/resolv.conf 2003/09/29 12:57:52| Adding nameserver 205.162.184.2 from /etc/resolv.conf 2003/09/29 12:57:52| Unlinkd pipe opened on FD 9 2003/09/29 12:57:52| Swap maxSize 102400 KB, estimated 7876 objects 2003/09/29 12:57:52| Target number of buckets: 393 2003/09/29 12:57:52| Using 8192 Store buckets 2003/09/29 12:57:52| Max Mem size: 8192 KB 2003/09/29 12:57:52| Max Swap size: 102400 KB 2003/09/29 12:57:52| Rebuilding storage in /usr/local/squid/var/cache (DIRTY) 2003/09/29 12:57:52| Using Least Load store dir selection 2003/09/29 12:57:52| Set Current Directory to /usr/l [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: <<Squid 中文权威指南>> 下一篇文章: oralce启动状态解析 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |