Linux下Squid安装步骤.docx

上传人:b****8 文档编号:9785313 上传时间:2023-02-06 格式:DOCX 页数:12 大小:19.95KB
下载 相关 举报
Linux下Squid安装步骤.docx_第1页
第1页 / 共12页
Linux下Squid安装步骤.docx_第2页
第2页 / 共12页
Linux下Squid安装步骤.docx_第3页
第3页 / 共12页
Linux下Squid安装步骤.docx_第4页
第4页 / 共12页
Linux下Squid安装步骤.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Linux下Squid安装步骤.docx

《Linux下Squid安装步骤.docx》由会员分享,可在线阅读,更多相关《Linux下Squid安装步骤.docx(12页珍藏版)》请在冰豆网上搜索。

Linux下Squid安装步骤.docx

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运行时产生的输出信息和错误信息。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1