squid安装和基本配置

来源:互联网 发布:淘宝打折软件有用吗 编辑:程序博客网 时间:2024/05/24 04:29


squid配置

1 ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl --enable-linux-netfilter --enable-pthreads --enable-err-language="Simplify_Chinese" --enable-storeio=ufs,null --enable-default-err-language="Simplify_Chinese" --enable-auth="basic" --enable-baisc-auth-helpers="NCSA" --enable-underscore

--prefix=/usr/local/squid指定Squid的安装位置,如果只指定这一选项,那么该目录下会有bin、sbin、man、conf等目录,而主要的配置文件此时在conf子目录中。为便于管理,最好用参数--sysconfdir=/etc把这个文件位置配置为/etc。

--enable-storeio=ufs,null 使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服 务器,就需要加上null文件系统

--enable-arp-acl这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗。

--enable-err-languages="Simplify_Chinese"
--enable-default-err-languages="Simplify_Chinese"上面两个选项告诉Squid编入并使用简体中文错误信息。

--enable-linux-netfilter允许使用Linux的透明代理功能

./configure --prefix=/usr/local/squid /          #指定squid安装目录
--mandir=/usr/share/man /                        #指定man的安装目录
--enable-async-io=20 /                           #采用同步io提高性能,负载高可设大点
--disable-icmp /                                 #禁止icmp协议代理(默认不允许)
--enable-delay-pools /                           #允许延迟限止带宽
--enable-cache-digests /                         #允许缓存摘要,可以加快请求缓冲内容的速度(集群用)
--enable-snmp /                                  #允许snmp协议支持(如用mrtg进行流量监控等)
--disable-ident-lookups /                        #禁止使用RFC931识别
--enable-epoll /                                 #支持epoll的IO模式,2.6以上内核才具有
--enable-basic-auth-helpers="NCSA"               #允许带密码验证,NCSA 风格的用户名和密码档
--enable-linux-netfilter                         #允许透明代理
--enable-arp-acl                                 #允许基于MAC地址的存取过滤
--enable-err-language="Simplify_Chinese"         #支持的错误语言
--enable-default-err-language="Simplify_Chinese" #指定默认的错误语言

 

2 添加squid启动用户和组:
groupadd squid
useradd -g squid squid -s /sbin/nologin
#根据cache_effective_user指定缓冲管理的用户
设定使用缓存的有效用户。缺省为用户nobody,如果你的系统中没有,最好建一个或以非root用户运行Squid


mkdir var/cache  (这个可以用--localstatedir=自已选择缓存安装的路径)       #根据cache_dir指定
chown -R squid:squid /usr/local/squid  (如果是用root用户就不用这步了)     #更改目录所有者和组为squid连同子目录

 

3.squid启动 
我一般都是用root登入系统进行操作,在/usr/local/squid/sbin/目录下
usr/local/squid/sbin/squid -z
usr/local/squid/sbin/squid -D 跳过检测dns启动
usr/local/squid/sbin/squid -k reconfigure 不重启,更新squid配置。
正常的启动和结束squid,squid正常使用。


echo "/usr/local/squid/sbin/squid -s" >> /etc/rc.local 设置squid开机后启动。


正常情况下你想将squid以后台进程运行(不出现在终端窗口里)。最容易的方法是简单执行如下命令:
%squid -s

cache目录初始化可能花费一些时间,依赖于cache目录的大小和数量,以及磁盘驱动器的速度。假如你想观察这个过程,请使用-X选项:

%squid -zX

使用-N选项来保持squid在前台运行,-d1选项在标准错误里显示1级别的调试信息。

%squid -N -d1

假如squid工作正常,页面被迅速载入,就象没使用squid一样。另外,你可以使用squidclient程序,它随squid发布:

% squidclient http://www.squid-cache.org/假如它正常工作,squid的主页html文件会在你的终端窗口里滚动。一旦确认squid工作正常,你能中断squid进程(例如使用ctrl-c)并且在后台运行squid

netstat -naput |grep 3128 查看进程。

监控缓冲日志:
tail -f /usr/local/squid/var/logs/access.log (使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。)


/etc/squid.conf 基本的配置信息

http_port 3128 transparent(cache默认一项)

(在后面可增加些配置,做为squid 反向代理提高网站性能--配置参考squid-单台配置.txt,squid--多台squid配置.txt)

cache_mem 32 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
cache_dir ufs /usr/local/squid/cache 1000 16 256 (100代表缓存最大为100M;16和256代表一级和二级目录数)
cache_access_log /usr/local/squid/logs/access.log
cache_log /usr/local/squid/logs/cache.log
dns_nameservers 202.96.209.5
unlinkd_program /usr/local/squid/bin/unlinkd
acl acllist src 192.168.9.0/255.255.255.0
acl regular_days time MTWHF 8:00-19:00
acl movie urlpath_regex "/etc/squid/banned.list"(把过滤关键字写到文件中去)
acl banned url_regex iij4u.or.jp(做些控制)
acl cache_prevent1 url_regex cgi-bin /?
acl cache_prevent2 url_regex Servlet
acl all src 0.0.0.0/0.0.0.0 或all
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70      # gopher
acl Safe_ports port 210     # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280     # http-mgmt
acl Safe_ports port 488     # gss-http
acl Safe_ports port 591     # filemaker
acl Safe_ports port 777     # multiling http
http_access deny movie regular_days
no_cache deny cache_prevent1
no_cache deny cache_prevent2
http_access deny banned
http_access allow all
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
icp_access allow all
http_access allow manager localhost
http_access deny manager
http_access allow localhost
http_access deny all
client_lifetime 2 hours
half_closed_clients off
cache_effective_user squid
cache_effective_group squid(请注意squid对cache及log目录有读写权)
cache_mgr webmaster@test.com.cn(设置邮件)
(httpd_accel_host virtual    
httpd_accel_port 80    
httpd_accel_with_proxy on    
httpd_accel_uses_host_header on 这是2.6以前的透明**设置2.6的只要http_port 3128 transparent就可以了)

 

原创粉丝点击