1、Linux下Squid安装步骤一、确保Linux 系统中装有NET-SNMP 协议 获取与安装NET-SNMP官方网站: tar zxvf cd ./configure -enable-developer -with-mib-modules=host agentx examples/example# make# make install# ln s /usr/local/net-snmp/bin/* /usr/local/bin/# cp /usr/local/net-snmp/share/snmp/ 的配置# vi /etc/动snmpd效劳 #/usr/local/sbin/snmpd -
2、d 启snmpd效劳 #/etc/snmpd restart3. 系统启动时启动SNMP效劳 #vi /etc/ 启snmpd效劳 #cd /etc/ #snmpd restart或#service snmpd restart二、Squid 1.检查linux是不是存在squid老版本# rpm -qa|grep squid# rpm -e squid configure -prefix=/usr/local/squid -sysconfdir=/etc/squid -bindir=/usr/bin -sbindir=/usr/sbin -mandir=/usr/share/man -enab
3、le-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
4、-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 # make install./configure -prefix=/usr/local/squid #指定squid安装目录-mandir
5、=/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-a
6、uth-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
7、-R nobody:nobody /usr/local/squid/var#初始化你在 里配置的 cache 目录# cd /usr/local/squid/var# squid z各类启动方式如下:#squid -k parse #检查配置是不是有错误,没有任何输出,证明配置大体是正确的!#squid -zX #能够加一个X参数,看看初始化具体的项目. #squid D #若是因为DNS无法启动squid,能够用下面的命令启动squid# squid -NCd1 #若是运行正常,终端会显示“Ready to serve requests” 测试用下面的命令测试:# snmpwalk -v1
8、-c public .若是能看到类似下面的信息,说明成功了。SNMPv2-SMI: = INTEGER: 16360SNMPv2-SMI: = INTEGER: 有因为默许snmp是利用161端口的,而squid的snmp开启的是3401端口,若是想直接通过snmp端口就能够够取到squid的相关信息,能够在中加入view systemview included . -v 1 -c public localhost:3401 .用下面的命令测试:snmpwalk -v1 -c public .若是能看到类似下面的信息,说明成功了。SNMPv2-SMI: = INTEGER: 16360SNMP
9、v2-SMI: = INTEGER: 经常使用命令1,对你的 排错,即验证 的 语法和配置。#squid -k parse若是 有语法或配置错误,那个地址会返回提示你,若是没有返回,恭喜,能够尝试启动squid。2,在前台启动squid,并输出启动进程。#squid -N -d1若是有到 ready to server reques,恭喜,启动成功。然后 ctrl + c,停止squid,并以后台运行的方式启动它。3,启动squid在后台运行。#squid -s这时能够 ps -A 来查看系统进程,能够看到俩个 squid 进程。4,停止 squid#squid -k shutdown那个不用
10、说明吧。5,重引导修悔改的 #squid -k reconfigure 其他1,把squid添加到系统启动项编辑 /etc/添加如下行: /usr/local/squid/sbin/squid -s固然,并非是每一个人都喜爱这种启动方式,你能够用你最适应的方式;或把它安装为效劳。2,修改cache 缓存目录的权限。#chown -R nobody:nobody /home/cache我的cache缓存目录是 /home/cache, nobody执行用户和用户组是nobody,nobody。3,修改squid 日记目录的权限#chown -R squid:squid /usr/local/sq
11、uid/var/logs这一步并非是适合每一个利用squid的用户.意为让squid有权限在该目录进行写操作 。例如生成 4,查看你的日记文档。#more /usr/local/squid/var/logs/ | grep TCP_MEM_HIT该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户。#more /usr/local/squid/var/logs/ | grep TCP_HIT该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户。#more /usr/local/squid/var/logs/
12、| grep TCP_MISS该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是现重原始服务器获取并返回给访问用户。 配置实例http_port transparenticp_port 3130cache_dir aufs /usr/local/squid/var/cache 25000 16 256cache_access_log /usr/local/squid/var/logs/cache_log /usr/local/squid/var/logs/cache_store_log /usr/local/squid/var/logs/pid_filename /us
13、r/local/squid/var/logs/http_access deny allhttp_access allow allcache_effective_user nobodycache_effective_group nobodycache_mgracl SSL_ports port 443acl Safe_ports port 80 # httpacl Safe_ports port 21 # ftpacl Safe_ports port 443 # httpsacl Safe_ports port 70 # gopheracl Safe_ports port 210 # waisa
14、cl Safe_ports port 1025-65535 # unregistered portsacl Safe_ports port 280 # http-mgmtacl Safe_ports port 488 # gss-httpacl Safe_ports port 591 # filemakeracl Safe_ports port 777 # multiling httpacl Safe_ports port 161 # multiling httpacl CONNECT method CONNECThttp_access allow all#acl snmpManager lo
15、calhost src 3401acl snmppublic snmp_community publicsnmp_access allow snmppublic localhost 配置说明lSquid配置(仅对必要选项配置并说明):http_port 80此选项用于Squid代理所侦听的端口,由于要实现Http加速代理,那么侦听端口80tcp_outgoing_address 此句法指定了远程效劳器的IP地址,那个地址咱们利用来指定为所有地址tcp_incoming_address那个地址能够利用http_port语法进行绑定端口和IP地址。表示客户端的请求。能够不利用。cache_mem
16、64 MB由于Squid在读写磁盘,I/O通道,数据转贮等需要大量内存,咱们能够把内存值略微设置大一些,如此能够提供效劳器性能。 cache_swap_low 95这用做表示缓存内部对象的替换的衡量基线。当互换分区的磁盘利用率超越那个基线,那么缓存对象替换也就随之开始。那个地址是用百分率做衡量标准。 cache_swap_high 98此标记用于缓存对象替换的最高程度,当互换分区磁盘利用率接近此设置,那么表示对象的更新程度更为猛烈。那个地址由于我的缓存区设置比较大,因此设置为98%。 下面几个配置标记采纳系统默许配置。 maximum_object_size 4096 KB 超过此尺寸的对象将
17、不缓存。 minimum_object_size 0 KB 小于此尺寸的对象将不缓存。 maximum_object_size_in_memory 8 KB 内存中能缓存的最大对象尺寸。 ipcache_size 1024 指定IP缓存大小。 ipcache_low 90 缓存IP地址的最低基线。 ipcache_high 95 缓存IP地址的最高极限。 fqdncache_size 1024 缓存DNS全域名解析的尺寸。 cache_replacement_policy lru此标记用于当缓存新对象时,利用缓存策略来清除缓存中特定对象。那个地址利用lru表示:它只替换长时刻没有被访问过的对象
18、。其他策略请参看配置文档介绍。 memory_replacement_policy lru此用法同上,区别在于替换内存对象。 cache_dir ufs /cache 4000 16 256设置缓存根目录为/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
19、_on_direct on记录客户端主机的IP地址。 log_fqdn on记录全DNS域名解析。 mime_table /usr/local/squid/etc/Squid所用mime的文件途径 pid_filename /usr/local/squid/logs/Squid进程ID的文件。 ftp_user那个地址能够利用匿名登岸FTP效劳器。 ftp_list_width 32FTP文件列表长度,超太长度那么截断文件名。ftp_passive on许诺主动连接FTP效劳器。 dns_nameservers 指定代理的域名解析效劳器。 authenticate_program /usr/l
20、ocal/squid/bin/ncsa_auth/usr/local/squid/etc/passwd代理认证程序,那个地址在/usr/local/squid/etc利用htpasswd产生一个密码文件,具体方式如下:#htpasswd cdb passwd auth_usr1 pass1#htpasswd db passwd auth_usr2 pass2#htpasswd db passwd auth_usr3 pass3创建passwd文件,并添加auth_usr1,auth_usr2,auth_usr3三个认证用户。 authenticate_children 5所需要要产生的认证进程
21、数。 authenticate_ttl 3600此标记设置认证维持时刻。 authenticate_ip_ttl 1800此标记设置认证绑定IP地址的时刻长度。 authenticate_ip_ttl_is_strict on此标记可在authenticate_ttl时刻内,拒绝其他非认证IP地址访问。 request_header_max_size 10 KBrequest_body_max_size 1 MB设置了Http请求的包头和数据大小。 request_body_max_size 0那个地址,请求所返回的数据大小为0,意义为没有任何限制。 connect_timeout 180 s
22、econdsread_timeout 15 minutesrequest_timeout 20 seconds上面几项是代理效劳几个超时设置,那个地址利用配置文件默许值。 下面是访问操纵列表一些配置,那个地址对访问的IP地址,域名,访问类型极为访问代理的权限做的限制:acl acldomain dstdomain . acceleratedport port 80acl acceleratedhost dst aclprotocol proto HTTP FTPacl aclmethod method GET POST acl aclauth proxy_auth required (注:那个
23、地址利用required表示任何passwd文件中存在的合法用户才授予访问权限。) acl aclsnmp snmp_community secrectMRTG能够利用snmp协议检测此代理效劳运行状态。 acl aclconn maxconn 20可并行连接的最大数量。 启用概念的访问操纵列表http_access allow manager localhosthttp_access deny managerhttp_access allow aclauthhttp_access allow acceleratedport acceleratedhosthttp_access deny al
24、l 下面为缓存治理设置cache_mgr设置缓存治理者的同意邮件地址。 cache_effective_user squidusrcache_effective_group squidgrp设置执行Squid的用户和用户组。注:设置用户和用户组及其权限修改方式如下:#groupadd squidgrp#useradd g squidgrp d /home/squidusr squidusr修改log日记权限属性,使squidusr有写权限。#chown squidusr /var/log/squid#chgrp&命中率分析/usr/local/squid/bin/squidclient -p
25、80 mgr:info/usr/local/squid/bin/squidclient -p 80 mgr:5min可以看到详细的性能情况,其中PORT是你的proxy的端口,5min可以是60min取得squid运行状态信息: squidclient -p 80 mgr:info*取得squid内存使用情况: squidclient -p 80 mgr:mem*取得squid已经缓存的列表: squidclient -p 80 mgr:objects . use it carefully,it may crash*取得squid的磁盘使用情况: squidclient -p 80 mgr:d
26、iskd*强制更新某个url:squidclient -p 80 -m PURGE *更多的请查看:squidclient-h 或者 squidclient -p 80 mgr:查命中率:/usr/local/squid/bin/squidclient -h -p80 mgr:info/usr/local/squid/bin/squidclient -h具体的IP -p80 mgr:info(咱们一样都会把squid配置成有缓存目录的模式,也确实是有配置cache_dir目录,当squid应用运行了一段时刻以后,cache_dir对应的文件就会变得愈来愈大,里面的无效接口数据愈来愈多,这可能在必然程度上阻碍squid的响应时刻,现在咱们能够利用rotate命令来使squid清理里面的无效数据,减少的大小。具体命令格式:/path/to/squid/sbin/squid -k rotate -f /path/to/squid/conf_file但是在以前的版本都发现一些问题,rotate完以后启动DNSSERVER的时候会提示不能分配内存,从而导致DNSSERVER的辅助进程不能启动,此时一般情况下需要重启squid应用。) 排错检查缓存目录中的文件能够判定squid工作是不是正常。此文件包括squid运行时产生的输出信息和错误信息。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1