软件环境:Redhat Linux 6.x
建议:如果你用Redhat Linux 6.x,建议你不要使用Redhat 自带的RPM版本的Squid,我发现问题很多
而是去Squid主页www.squid-cache.org下载最新的Squid 2.3-STABLE4进行编译。
步骤:
1.下载最新版本的源文件 Squid-2.3.STABLE4.src.tar.gz 放置于/tmp目录下
2. 进入squid目录进行编译,考虑两个编译选项,一是安装路径--prefix=/usr/local/squid
二是Squid内部DNS功能是否禁止 --disable-internal-dns ,也就是说,如果不带上禁止选项的话,
Squid代理服务器在程序内部实现DNS解析,不会检查/etc/hosts文件,直接根据/etc/resolv.conf
中列出的DNS服务器的顺序进行DNS解析,这样有个毛病就是不能代理对内部网段上服务器的访问了。
我的情况下加上了这个选项。
登录作为root,执行下面的命令:
#cd squid*
# ./configure --prefix=/usr/local/squid --disable-internal-dns
# make
#make install
3.上面三步执行完毕,Squid整个程序应该被安装在/usr/local/squid目录下了,但仍需要做其余的动作。
4.以root身份创建组nogroup
#groupadd nogroup
5.进行目录/usr/local ,以root身份执行下面的命令,改变整个Squid目录的所有者为nobody.nogroup:
#cd /usr/local
#chown nobody.nogroup -R squid
6. su 作为nobody,进行/usr/local/squid/bin目录,执行#squid -z 创建cache交换目录
#su nobody
$ cd /usr/local/squid/bin
$./squid -z
7.更改/usr/local/squid/etc/squid.conf文件中的http_access deny all行为
http_access allow all允许所有的机器能存取代理服务器,你也可以定义自己的存取控制规则,
但要注意默认安装后的初始设置是禁止所有的存取的。
8. 如果你要取消一些不必要的log文件的话,改squid.conf中下面的行。
cache_log /dev/null
cache_store_log none
这样可禁止这两个log的生成,仅生成access.log