职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1699|回复: 1

squid 服务器的架设

[复制链接]
难得糊涂 发表于 2007-7-30 16:14 | 显示全部楼层 |阅读模式
squid 服务器的架设

Squid 服务器的配置
OS:RedHat Enterprise linux 4 内核:2.6.9-11.EL    Squid 版本:squid-2.6.STABLE9.tar.gz

一、   安装 Squid

# groupadd squid
# useradd –g squid squid
添加 squid 组和用户,如果系统内置有,可以免却这一步,可以到 /etc/group & /etc/passwd 中查看。
# tar xzvf /root/ squid-2.6.STABLE9.tar.gz
解压 SQUID
# cd squid-2.6.STABLE9
# export CFLAGES= ‘-O2 –mcpu=athlon march=athlon –mmmx –msse –msse2’
# ./configure -–prefix=/usr/local/squid \\
?   --enable-gnuregex –enable-async-io=120 –enable-icmp \\
?   --enable-kill-parent-hack --enable-snmp \\
?   --enable-ident-lookups –enable-cahce-digests \\
?   --enable-err-language=”simplify_chinese” --enable-default-err-language=”simplify_chinese” \\
?   --enable-poll –enable-linux-netfilter –enable-arp-acl
参数解释:
--prefix=/usr/local/squid :指定软件的安装路径
--enable-gnuregex :由于Squid大量使用字符串处理做各种判断,加入此项能更好的处理。
--enable-async-io=80 :这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了。另外此项还另cache文件支持aufs
--enable-icmp :加入icmp支持
--enable-kill-parent-hack :关掉suqid的时候,要不要连同父进程一起关掉,这个当然要啦
--enable-snmp :此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
--disable-ident-lookups :防止系统使用RFC931规定的身份识别方法。
--enable-cahce-digests :加快请求时,检索缓存内容的速度。
--enable-arp-acl :可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗。
--enable-err-language=\"Simplify_Chinese\" 和
--enable-default-err-languages=\"Simplify_Chinese\" :指定出错是显示的错误页面为简体中文
--enable-poll :应启用Poll()函数而不是select()函数,通常而言poll(轮询)比select要好,但configure(脚本程序)已知Poll在某些平台下失效, 若你认为你比configure编译配置脚本程序要聪明的话,可以用这个选项启用Poll。总之就是用这个可以提升性能就是啦。
--enable-linux-netfilter :可以支持透明代理

# make
# make install
修改 squid 的配置文件 squid.conf
常用的配置选项
因为缺省的配置文件有问题,所以我们必须首先修改该配置文件的有关内容,以便让squid跑起来。
下面我们来看一看squid.conf文件的结构以及一些常用的选项:
squid.conf配置文件的可以分为十三个部分,这十三个部分分别是:
1.NETWORK OPTIONS (有关的网络选项)
2.OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM (作用于邻居选择算 法的有关选项)
3.OPTIONS WHICH AFFECT THE CACHE SIZE (定义cache大小的有关选项)
4.LOGFILE PATHNAMES AND CACHE DIRECTORIES (定义日志文件的路径及cache的目录)
5.OPTIONS FOR EXTERNAL SUPPORT PROGRAMS (外部支持程序选项)
6.OPTIONS FOR TUNING THE CACHE (调整cache的选项)
7.TIMEOUTS (超时)
8.ACCESS CONTROLS (访问控制)
9.ADMINISTRATIVE PARAMETERS (管理参数)
10.OPTIONS FOR THE CACHE REGISTRATION SERVICE (cache注册服务选项)
11.HTTPD-ACCELERATOR OPTIONS (HTTPD加速选项)
12.MISCELLANEOUS (杂项)
13.DELAY POOL PARAMETERS (延时池参数)
虽然squid的配置文件很庞大,但是如果你只是为一个中小型网络提供代理服务,并且只准备使用一台服务器,那么,你只需要修改配置文件中的几个选项。我的目的只是想要让 squid 动起来,所以没有做过多的其他限制和设置。这些几个常用选项分别是:

# vi /usr/local/squid/etc/squid.conf
http_port 3128    /*在第89行处*/
#默认情况下,公认的标准 PROXY 端口为3128   
#禁止缓存
hierarchy_stoplist cgi-bin ?          /*在第729行处*/
hierarchy_stoplist -i ^https:\\\\ ?          /*在第730行处*/
acl QUERY urlpath_regex -i cgi-bin \\? \\.asp \\.php \\.jsp \\.cgi  /*在第741行处*/
acl denyssl urlpath_regex -i ^https:\\\\        /*在第742行处*/
no_cache deny QUERY            /*在第743行处*/
no_cache deny denyssl            /*在第744行处*/
#上面几个就是说遇到URL中有包含cgi-bin和以https:\\\\开头的都不要缓存,
#还有asp、cgi、php等动态脚本也不要缓存,
#因为这些脚本通常都是动态更新的,这样数据不同步。
#还有https://开通的不缓存是因为一般我们进行电子商务交易,
#例如银行付款等都是采用这个的,如果把信用卡号什么缓存那不是很危险。
cache_mem 24 MB                /*在第800行处*/   
#额外使用内存量,可根据你的系统内存在设定,一般为实际内存的1/3默认是8MB
cache_swap_low 90                /*在第817行处*/
#最低缓存百分比
cache_swap_high 95              /*在第818行处*/
##最高缓存百分比,就是上面那个额外内存的使用百分比
maximum_object_size 4096 KB           /*在第833行处*/
#单个文件最大缓存大小,超过这个大小将不缓存
maximum_object_size_in_memory 8 KB        /*在第850行处*/
#在内存中单个文件最大缓存大小,超过这个大小将不缓存到内存中
#有DNS正反解所得到的IP存在缓存区的大小,这样可以加快解析速度
ipcache_size 1024            /*在第858行处*/
ipcache_low 90            /*在第859行处*/
ipcache_high 95            /*在第860行处*/
fqdncache_size 1024          /*在第866行处*/
# LOGFILE PATHNAMES AND CACHE DIRECTORIES(定义日志文件的路径及cache的目录)
# -----------------------------------------------------------------------------

#  <cache_dir>; <aufs|ufs>; <目录所在>; <MBytes大小>; <dir1>; <dir2>;
#  那个 aufs 只有在编译的时候加入 --enable-async-io 那个选项才有支持,
#  至于目录所在地与所占用的磁盘大小则请视您的主机情况而定,
#  而后面 dir1, dir2 则是两个次目录的大小,通常 16 256 或 64 64 皆可,
#  一般来说,数字最好是 16 的倍数,据说性能会比较好啦!

cache_dir aufs /usr/local/squid/var/cache1 100 16 256     /*在第1055行处*/
cache_dir aufs /usr/local/squid/var/Cache2 200 16 256      /*在第1056行处*/
#日志存放位置
access_log /usr/local/squid/var/logs/access.log squid     /*在第1141行处*/

cache_log /usr/local/squid/var/logs/cache.log        /*在第1149行处*/

# TAG: cache_store_log
cache_store_log /usr/local/squid/var/logs/store.log      /*在第1159行处*/
# TAG: pid_filename
pid_filename /usr/local/squid/var/logs/squid.pid       /*在第1257行处*/
#用代理登陆匿名ftp服务选项
# TAG: ftp_user
ftp_user Squid@               /*在第1305行处*/
#用户名
ftp_passive on                /*在第1320行处*/
#被动模式
#认证
#auth_param basic children 5          /*在第1817行到1832处全部注释*/
#auth_param basic realm Squid proxy-caching web server      
#auth_param basic credentialsttl 2 hours
#auth_param basic casesensitive off
# OPTIONS FOR TUNING THE CACHE(调整cache的选项)
# -----------------------------------------------------------------------------


# TAG: refresh_pattern  Cache更新时间设置
#<refresh_pattern>; <regex>; <最小时间>; <百分比>; <最大时间>;

refresh_pattern ^ftp:      1440   20%   10080     /*在第2066行处*/

refresh_pattern ^gopher:   1440   0%   1440     /*在第2067行处*/
refresh_pattern .      0   20%   4320       /*在第2068行处*/

#上面第一行如果网址开头是 ftp 的话,那么在一天(1440分钟)后,
#如果proxy 再次取用这个档案时,则 cache 内的数据会被更新!
# TIMEOUTS (超时)
# -----------------------------------------------------------------------------
#连接到其他机器的最大尝试时间
connect_timeout 1 minute         /*在第2196行处*/
#连接到上层代理的超时时间
peer_connect_timeout 30 seconds       /*在2205行处*/
#返回超时
request_timeout 2 minutes         /*在第2222行处*/
#持续连接时间
persistent_request_timeout 1 minute       /*在第2229行处*/
# ADMINISTRATIVE PARAMETERS(管理参数)
# -----------------------------------------------------------------------------

# TAG: cache_mgr
cache_mgr webmaster        /*在第2860行处*/
#管理员信箱

# TAG: cache_effective_user
cache_effective_user squid         /*在第2890行处*/
#运行squid时的用户
cache_effective_group  squid        /*在第2902行处*
squid #运行squid时的组

# TAG: visible_hostname

visible_hostname redhat        /*在第2918行处*
#代理服务器名称
# OPTIONS FOR THE CACHE REGISTRATION SERVICE(cache注册服务选项)
# -----------------------------------------------------------------------------
改变目录权限,为了避免麻烦,我将 /usr/local/squid 目录下的所有权全部给 squid 所有
# chown –R squid:squid /usr/local/squid
启动 squid:
在启动 squid 之前,首先我们必须建立缓存目录的格式,另外我们还需要用用户 squid 来启动 squid 服务
# /usr/local/squid/sbin/squid –z     #建立缓存目录 cache_dir
# su squid –c “/usr/local/squid/sbin/squid &”
妈妈咪呀 发表于 2012-3-27 22:52 | 显示全部楼层
对于那些外国产品我有时侯也用不习惯,就是英文不太会啊,还有有些配置不简单的,所以我
建议你还是用国内的软件吧,比如说那个美信CreCloud的(www.mxsoft.com),中文的,安装
简单,方便,还是免费的
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-20 07:44 , Processed in 0.153633 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表