软件环境: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