rss· 投稿· 设为首页· 加入收藏· 繁體版

linux squid的安装配置+ncsa设置

系统: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

顶一下
(0)
踩一下
(0)