系统:RHLE4.0
选择正确的软件:我使用的是squid-3.0.STABLE7.tar.gz
官方网站:
一、安装squid
#groupadd squid
#useradd -g squid squid(注意这里不要使用-s /sbin/nologin选项,一旦使用就
不能用squid登陆)
#tar zxvf squid-3.0.STABLE7.tar.gz
#cd squid-3.0.STABLE7
#cp helpers/basic_auth/NCSA/ncsa_auth /usr/bin/
(这里应该会有ncsa_auth这个可执行文件,如果没有的话,运行下面
的./configure命令之后也应该会有了)
#vi src/errorpage.cc //把下面的“ "Generated %T by %h (%s)\n"”
修改为“ "Generated %t by %h (%s)\n"”即可
ERR_SQUID_SIGNATURE,
"\n<BR clear=\"all\">\n"
"<HR noshade size=\"1px\">\n"
"<ADDRESS>\n"
"Generated %T by %h (%s)\n"
"</ADDRESS>\n"
"</BODY></HTML>\n"
},
# ./configure --prefix=/usr/local/squid --enable-gnuregex --enable-arp-
acl --enable-auth="basic" --enable-basic-auth-helpers="NCSA" --enable-
async-io=80 --enable-storeio=ufs --enable-icmp --enable-kill-parent-hack
--enable-snmp --disable-ident-lookups --enable-cache-digests --enable-ssl
--enable-delay-pools --enable-poll --enable-linux-netfilter --enable-
underscore --enable-err-language="Simplify_Chinese" --enable-default-err
-languages="Simplify_Chinese"
(这个命令中--enable-auth="basic"很重要,ncsa_auth靠这个才能实现对代理使
用者的身份认证)
#make && make install
# /usr/local/squid/sbin/squid
-z
//测试Squid运行状况
# chown -R squid.squid /usr/local/squid/var/
# /usr/local/apache/bin/htpasswd -c /usr/local/squid/etc/password
guest
//输入密码二次,即可。如果以后要增加用户,去掉'-c'
二、配置squid
问题1:发生了下列的错误:* Access Denied.拒绝访问
Access control configuration prevents your request from being
allowed at
this time. Please contact your service provider if you feel this is
incorrect.
cat /var/log/squid/access.log 结果如下:
1077270012.067 1 10.11.46.221 TCP_DENIED/403 1378 GET
问题分析:这里一定是/usr/local/squid/etc/squid.conf没有配置好,尝试吧
http_access deny all修改为http_access allow all,如果squid能够正常工作,
则squid.conf没有太大问题。
问题2:The basicauthenticator helpers are crashing too rapidly, need
help! a、查看在前面安装的时候有没有正确安装认证模块ncsa(./configure的时候有没
有--enable-auth="basic"这个选项)
b、如果认证模块已经确定安装,则需要进一步
对/usr/local/squid/etc/squid.conf文件进行配置,查找ncsa_auth这一行,去掉
前面的注释:
auth_param basic program /usr/local/squid/libexec/ncsa_auth
/usr/local/squid/etc/password
请确保/usr/local/squid/libexec文件夹中有可执行文件ncsa_auth
以及/usr/local/squid/etc文件夹中有认证文件password
增加acl auth_user proxy_auth REQUIRED
增加http_access allow auth_user
三、运行squid
首先以root身份登陆。运行如下命令:【这里有点问题,使用squid身份运行以下命令才能生效】
%/usr/local/squid/bin/squid –z
该命令会产生Squid所有的缓存目录。
如果你想前台执行Squid,接着执行命令:
%/usr/local/squid/bin/squid -NCd1
该命令正式启动Squid。如果一切正常,你会看到一行输出
Ready to serve requests.
如果想后台运行Squid,把它做为一个精灵进程,执行命令:
%/usr/local/squid/bin/squid
观察Squid是否运行使用命令:
% squid -k check
输出会告诉你Squid的当前状态。
期间参考:http://hi.baidu.com/52hack/blog/item/e125c4bfc087500219d81fe8.html