Linux下Squid安装步骤.docx
《Linux下Squid安装步骤.docx》由会员分享,可在线阅读,更多相关《Linux下Squid安装步骤.docx(12页珍藏版)》请在冰豆网上搜索。
Linux下Squid安装步骤
一、确保Linux系统中装有NET-SNMP协议
获取与安装
NET-SNMP官方网站:
tarzxvfcd./configure--enable-developer--with-mib-modules="hostagentxexamples/example"
#make
#makeinstall
#ln–s/usr/local/net-snmp/bin/*/usr/local/bin/
#cp /usr/local/net-snmp/share/snmp/
的配置
#vi/etc/
动snmpd效劳
#/usr/local/sbin/snmpd-d
启snmpd效劳
#/etc/snmpdrestart
3.系统启动时启动SNMP效劳
#vi/etc/
启snmpd效劳
#cd/etc/
#snmpdrestart
或#servicesnmpdrestart
二、Squid
1.检查linux是不是存在squid老版本
#rpm-qa|grepsquid
#rpm-esquidconfigure--prefix=/usr/local/squid--sysconfdir=/etc/squid--bindir=/usr/bin--sbindir=/usr/sbin--mandir=/usr/share/man--enable-gnuregex--enable-carp--enable-async-io=80--enable-removal-policies=heap,lru--enable-icmp--enable-delay-pools--enable-useragent-log--enable-referer-log--enable-kill-parent-hack--enable-snmp--enable-arp-acl--enable-htcp--enable-cache-digests--enable-default-err-language=Simplify_Chinese--enable-err-languages="Simplify_Chinese"--enable-poll--enable-linux-netfilter--disable-ident-lookups--enable-underscores--enable-auth="basic"--enable-basic-auth-helpers="NCSA"--enable-external-acl-helpers="ip_user"--enable-x-accelerator-vary
#make
#makeinstall
./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模式,以上内核才具有
--enable-basic-auth-helpers="NCSA"#允许带密码验证,NCSA风格的用户名和密码档
--enable-linux-netfilter#允许透明代理
--enable-arp-acl#允许基于MAC地址的存取过滤
--enable-err-language="Simplify_Chinese"#支持的错误语言
--enable-default-err-language="Simplify_Chinese"#指定默认的错误语言
配置
#cd
#mv/etc/squid//etc/squid/vi/etc/squid/
#mkdir-p/usr/local/squid/var/cache
#chown-Rnobody:
nobody/usr/local/squid/var
#初始化你在里配置的cache目录
#cd/usr/local/squid/var
#squid–z
各类启动方式如下:
#squid-kparse#检查配置是不是有错误,没有任何输出,证明配置大体是正确的!
!
!
#squid-zX#能够加一个X参数,看看初始化具体的项目.
#squid–D#若是因为DNS无法启动squid,能够用下面的命令启动squid
#squid-NCd1#若是运行正常,终端会显示“Readytoserverequests”
测试
用下面的命令测试:
#snmpwalk-v1-cpublic.若是能看到类似下面的信息,说明成功了。
SNMPv2-SMI:
:
=INTEGER:
16360
SNMPv2-SMI:
:
=INTEGER:
有因为默许snmp是利用161端口的,而squid的snmp开启的是3401端口,若是想直接通过snmp端口就能够够取到squid的相关信息,能够在中加入
viewsystemviewincluded.-v1-cpubliclocalhost:
3401.用下面的命令测试:
snmpwalk-v1-cpublic.若是能看到类似下面的信息,说明成功了。
SNMPv2-SMI:
:
=INTEGER:
16360
SNMPv2-SMI:
:
=INTEGER:
经常使用命令
1,对你的排错,即验证的语法和配置。
#squid-kparse
若是有语法或配置错误,那个地址会返回提示你,若是没有返回,恭喜,能够尝试启动squid。
2,在前台启动squid,并输出启动进程。
#squid-N-d1
若是有到readytoserverreques,恭喜,启动成功。
然后ctrl+c,停止squid,并以后台运行的方式启动它。
3,启动squid在后台运行。
#squid-s
这时能够ps-A来查看系统进程,能够看到俩个squid进程。
4,停止squid
#squid-kshutdown
那个不用说明吧。
5,重引导修悔改的
#squid-kreconfigure
其他
1,把squid添加到系统启动项
编辑/etc/
添加如下行:
/usr/local/squid/sbin/squid-s
固然,并非是每一个人都喜爱这种启动方式,你能够用你最适应的方式;或把它安装为效劳。
2,修改cache缓存目录的权限。
#chown-Rnobody:
nobody/home/cache
我的cache缓存目录是/home/cache,nobody执行用户和用户组是nobody,nobody。
3,修改squid日记目录的权限
#chown-Rsquid:
squid/usr/local/squid/var/logs
这一步并非是适合每一个利用squid的用户.意为让squid有权限在该目录进行写操作。
例如生成
4,查看你的日记文档。
#more/usr/local/squid/var/logs/|grepTCP_MEM_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户。
#more/usr/local/squid/var/logs/|grepTCP_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户。
#more/usr/local/squid/var/logs/|grepTCP_MISS
该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是现重原始服务器获取并返回给访问用户。
配置实例
http_porttransparent
icp_port3130
cache_diraufs/usr/local/squid/var/cache2500016256
cache_access_log/usr/local/squid/var/logs/
cache_log/usr/local/squid/var/logs/
cache_store_log/usr/local/squid/var/logs/
pid_filename/usr/local/squid/var/logs/
http_accessdenyall
http_accessallowall
cache_effective_usernobody
cache_effective_groupnobody
cache_mgr
aclSSL_portsport443
aclSafe_portsport80#http
aclSafe_portsport21#ftp
aclSafe_portsport443#https
aclSafe_portsport70#gopher
aclSafe_portsport210#wais
aclSafe_portsport1025-65535#unregisteredports
aclSafe_portsport280#http-mgmt
aclSafe_portsport488#gss-http
aclSafe_portsport591#filemaker
aclSafe_portsport777#multilinghttp
aclSafe_portsport161#multilinghttp
aclCONNECTmethodCONNECT
http_accessallowall
##########################################################
#aclsnmpManagerlocalhostsrc3401
aclsnmppublicsnmp_communitypublic
snmp_accessallowsnmppubliclocalhost
配置说明
lSquid配置(仅对必要选项配置并说明):
http_port80
此选项用于Squid代理所侦听的端口,由于要实现Http加速代理,那么侦听端口80
tcp_outgoing_address此句法指定了远程效劳器的IP地址,那个地址咱们利用来指定为所有地址
tcp_incoming_address
那个地址能够利用http_port语法进行绑定端口和IP地址。
表示客户端的请求。
能够不利用。
cache_mem64MB
由于Squid在读写磁盘,I/O通道,数据转贮等需要大量内存,咱们能够把内存值略微设置大一些,如此能够提供效劳器性能。
cache_swap_low95
这用做表示缓存内部对象的替换的衡量基线。
当互换分区的磁盘利用率超越那个基线,那么缓存对象替换也就随之开始。
那个地址是用百分率做衡量标准。
cache_swap_high98
此标记用于缓存对象替换的最高程度,当互换分区磁盘利用率接近此设置,那么表示对象的更新程度更为猛烈。
那个地址由于我的缓存区设置比较大,因此设置为98%。
下面几个配置标记采纳系统默许配置。
{maximum_object_size4096KB
{超过此尺寸的对象将不缓存。
{minimum_object_size0KB
{小于此尺寸的对象将不缓存。
{maximum_object_size_in_memory8KB
{内存中能缓存的最大对象尺寸。
{ipcache_size1024
{指定IP缓存大小。
{ipcache_low90
{缓存IP地址的最低基线。
{ipcache_high95
{缓存IP地址的最高极限。
{fqdncache_size1024
{缓存DNS全域名解析的尺寸。
cache_replacement_policylru
此标记用于当缓存新对象时,利用缓存策略来清除缓存中特定对象。
那个地址利用lru表示:
它只替换长时刻没有被访问过的对象。
其他策略请参看配置文档介绍。
memory_replacement_policylru
此用法同上,区别在于替换内存对象。
cache_dirufs/cache400016256
设置缓存根目录为/cache,类型为ufs,缓存区大小为4G,能够有16个二级子目录,每有二级目录有256个三级子目录。
cache_access_log/var/log/squid/
cache_log/var/log/squid/
cache_store_log/var/log/squid/
cache_swap_log/var/log/squid/
上面几项是缓存日记记录的途径和文件名。
log_ip_on_directon
记录客户端主机的IP地址。
log_fqdnon
记录全DNS域名解析。
mime_table/usr/local/squid/etc/
Squid所用mime的文件途径
pid_filename/usr/local/squid/logs/
Squid进程ID的文件。
ftp_user
那个地址能够利用匿名登岸FTP效劳器。
ftp_list_width32
FTP文件列表长度,超太长度那么截断文件名。
ftp_passiveon
许诺主动连接FTP效劳器。
dns_nameservers指定代理的域名解析效劳器。
authenticate_program/usr/local/squid/bin/ncsa_auth
/usr/local/squid/etc/passwd
代理认证程序,那个地址在/usr/local/squid/etc利用htpasswd产生一个密码文件,具体方式如下:
#htpasswd–cdbpasswdauth_usr1pass1
#htpasswd–dbpasswdauth_usr2pass2
#htpasswd–dbpasswdauth_usr3pass3
创建passwd文件,并添加auth_usr1,auth_usr2,auth_usr3三个认证用户。
authenticate_children5
所需要要产生的认证进程数。
authenticate_ttl3600
此标记设置认证维持时刻。
authenticate_ip_ttl1800
此标记设置认证绑定IP地址的时刻长度。
authenticate_ip_ttl_is_stricton
此标记可在authenticate_ttl时刻内,拒绝其他非认证IP地址访问。
request_header_max_size10KB
request_body_max_size1MB
设置了Http请求的包头和数据大小。
request_body_max_size0
那个地址,请求所返回的数据大小为0,意义为没有任何限制。
connect_timeout180seconds
read_timeout15minutes
request_timeout20seconds
上面几项是代理效劳几个超时设置,那个地址利用配置文件默许值。
下面是访问操纵列表一些配置,那个地址对访问的IP地址,域名,访问类型极为访问代理的权限做的限制:
aclacldomaindstdomain.acceleratedportport80
aclacceleratedhostdstaclprotocolprotoHTTPFTP
aclaclmethodmethodGETPOST
aclaclauthproxy_authrequired
(注:
那个地址利用required表示任何passwd文件中存在的合法用户才授予访问权限。
)
aclaclsnmpsnmp_communitysecrect
MRTG能够利用snmp协议检测此代理效劳运行状态。
aclaclconnmaxconn20
可并行连接的最大数量。
启用概念的访问操纵列表
http_accessallowmanagerlocalhost
http_accessdenymanager
http_accessallowaclauth
http_accessallowacceleratedportacceleratedhost
http_accessdenyall
下面为缓存治理设置
cache_mgr
设置缓存治理者的同意邮件地址。
cache_effective_usersquidusr
cache_effective_groupsquidgrp
设置执行Squid的用户和用户组。
{注:
设置用户和用户组及其权限修改方式如下:
#groupaddsquidgrp
#useradd–gsquidgrp–d/home/squidusrsquidusr
修改log日记权限属性,使squidusr有写权限。
#chownsquidusr/var/log/squid
#chgrp&
命中率分析
/usr/local/squid/bin/squidclient-p80mgr:
info
/usr/local/squid/bin/squidclient-p80mgr:
5min
可以看到详细的性能情况,其中PORT是你的proxy的端口,5min可以是60min
取得squid运行状态信息:
squidclient-p80mgr:
info
*取得squid内存使用情况:
squidclient-p80mgr:
mem
*取得squid已经缓存的列表:
squidclient-p80mgr:
objects .useitcarefully,itmaycrash
*取得squid的磁盘使用情况:
squidclient-p80mgr:
diskd
*强制更新某个url:
squidclient-p80-mPURGE
*更多的请查看:
squidclient-h或者squidclient-p80mgr:
查命中率:
/usr/local/squid/bin/squidclient-h-p80mgr:
info
/usr/local/squid/bin/squidclient-h具体的IP-p80mgr:
info
(咱们一样都会把squid配置成有缓存目录的模式,也确实是有配置cache_dir目录,当squid应用运行了一段时刻以后,cache_dir对应的文件就会变得愈来愈大,里面的无效接口数据愈来愈多,这可能在必然程度上阻碍squid的响应时刻,现在咱们能够利用rotate命令来使squid清理里面的无效数据,减少的大小。
具体命令格式:
/path/to/squid/sbin/squid-krotate-f/path/to/squid/conf_file
但是在以前的版本都发现一些问题,rotate完以后启动DNSSERVER的时候会提示不能分配内存,从而导致DNSSERVER的辅助进程不能启动,此时一般情况下需要重启squid应用。
)
排错
检查缓存目录中的文件能够判定squid工作是不是正常。
此文件包括squid运行时产生的输出信息和错误信息。