Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7593675 建立时间:2006年5月29日 |

| |
[网站架构]如何设置代理服务器软件Squid 软件技术
lhwork 发表于 2007/1/21 15:16:55 |
Squid
是一个缓存Internet数据的软件。当用户想要下载一个主页时,他向Squid发出一个申请,要Squid替它下载。然后Squid连接所申请网站,
并请求该主页,接着把该主页传给用户,同时保留一个备份。当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户感觉速度相当快。 编译Squid
在编译Squid之前,最好建一个专门运行Squid的用户和组。笔者就在自己的服务器上建了一个名为squid的用户和组。用户目录设为
/usr/local/squid。然后用“su”命令转换为squid用户,并从http://squid.nlanr.net下载Squid的源文件
到目录/usr/local/squid/src中,用如下命令进行解压后安装:
#tar xzf squid-2.0.RELEASE-src.tar.gz #cd /usr/local/squid/src/ squid-*.*.RELEASE / #./configure #make #make install
第一条命令在目录/usr/local/squid/src中产生一个新的子目录/squid-*.*.RELEASE/。命令
“./configure”会自动查询用户的系统配置情况和系统中使用的头文件。不加参数的“./configure”会把Squid安装在目录
/usr/local/squid中。如果用户想使用其它目录,用如下命令: #./configure --prefix=/some/other/directory 这会把Squid安装在目录/some/other/directory中。“make”命令编译Squid。“make install”命令安装Squid。 如果不出意外的话,目录/usr/local/squid中会出现目录/bin、/cache、/etc、/logs/和/src(自己创建的)。 目录/bin中含有Squid可执行程序,包括Squid本身、ftpget等。目录/cache包含Squid缓存的数据。目录/etc中包含Squid惟一的配置文件squid.conf。目录/logs中包含Squid的日志。 配置squid.conf 在安装Squid后,在目录/usr/local/squid /etc中会自动产生一个样本squid.conf文件。文件中对每一个选项都有详细的说明,用户可以通过修改该文件以满足不同的需要。 总的来说,有如下几个重要选项: ◆ http_port 设定Squid监听的端口。用户可设一个比较好记的端口号,以便在进行客户机配置时容易记住。笔者的机器上端口号设的是8080,缺省为3128。 ◆ cache_mem 设定Squid占用的物理内存。根据笔者的经验,cache_mem的大小不应超过物理内存的三分之一,否则将会影响机器的总体性能。 ◆ maximum_object_size 设定Squid可以接收的最大对象的大小。Squid缺省值为4MB。用户可以根据自己的需要进行设定。 ◆
cache_dir 设定缓存的位置、大小。一般看起来形式如“cache_dir usr/local/squid/cache 100 16
256”。/usr/local/squid/cache代表缓存的位置;100代表缓存最大为100MB;16和256代表一级和二级目录数。 ◆ cache_effective_user 设定使用缓存的有效用户,缺省用户为nobody。如果用户的系统中没有用户nobody,最好建一个或以非root用户运行Squid。 下面给出一个简单的squid.conf文件:
debug_options ALL,1 acl all src 0.0.0.0/0.0.0.0 cache_mem 32M cache_dir /usr/local/squid/cache 100 16 256 http_access allow all icp_access allow all dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.educache_effective_user squid squid 这个配置文件允许所有人使用Squid,创建了100MB缓存,使用32MB内存,在缺省位置“/usr/local/squid/cache”缓存数据。所有缓存数据以组squid和用户squid身份保存,端口为3128。 运行Squid 首先以root身份登陆,运行如下命令,产生Squid所有的缓存目录: #/usr/local/squid/bin/squid ?z 如果用户想前台执行Squid,接着执行下面的命令来正式启动Squid: #/usr/local/squid/bin/squid -NCd1 如果上面的命令运行正常,用户会看到如下一行输出: Ready to serve requests. 如果想后台运行Squid,把它作为一个精灵进程,执行命令如下: #/usr/local/squid/bin/squid 观察Squid是否运行使用下面的命令,输出会告诉用户Squid的当前状态: #squid -k check |
|
|