您的位置:首页 > 运维架构 > 反向代理

利用 squid 反向代理提高网站性能

2012-06-27 15:17 495 查看
此文章转自李明慧,中间有些东西是自己改动的,如有错误,敬请谅解

本文在介绍squid反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下,利用DNS轮询和Squid反向代理技术,实现了网站的负载均衡,从而提高了网站的可用性和可靠性。

现在有许多大型的门户网站如SINA都采用squid反向代理技术来加速网站的访问速度,可将不同的URL请求分发到后台不同的WEB服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全。

反向代理的概念

反向代理服务器又称为WEB加速服务器,它位于WEB服务器的前端,充当WEB服

务器的内容缓存器。其系统结构如图1

图1.系统结构





反向代理服务器是针对WEB服务器设置的,后台WEB服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台WEB服务器是如何组织架构的。当互联网用户请求WEB服务时,DNS将请求的域名解析为反向代理服务器的IP地址,这样URL请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台WEB服务器交互。利用反向代理服务器减轻了后台WEB服务器的负载,提高了访问速度,同时避免了因用户直接与WEB服务器通信带来的安全隐患。

回页首

Squid反向代理的实现原理

目前有许多反向代理软件,比较有名的有Nginx和Squid。Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Squid
是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持
HTTP
,HTTPS,FTP等多种协议,是现在Unix系统上使用、最多功能也最完整的一套软体。下面将重点介绍Squid反向代理的实现原理和在提高网站性能方面的应用。

Squid
反向代理服务器位于本地WEB服务器和Internet之间,组织架构如图2:

图2.组织架构





客户端请求访问WEB服务时,DNS将访问的域名解析为Squid反向代理服务器的IP地址,这样客户端的URL请求将被发送到反向代理服务器。如果Squid反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的WEB服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

Squid反向代理一般只缓存可缓冲的数据(比如html网页和图片等),而一些CGI脚本程序或者ASP、JSP之类的动态程序默认不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态页面。有四个最重要HTTP头标记:

Last-Modified:告诉反向代理页面什么时间被修改

Expires:告诉反向代理页面什么时间应该从缓冲区中删除

Cache-Control:告诉反向代理页面是否应该被缓冲

Pragma:用来包含实现特定的指令,最常用的是Pragma:no-c
ache


回页首

利用Squid反向代理加速网站实例

本实例的域名是wenjin.cache.
ibm.com.cn
,通过
DNS
的轮询技术,将客户端的请求分发给其中一台Squid反向代理服务器处理,如果这台Squid缓存了用户的请求资源,则将请求的资源直接返回给用户,否则这台Squid将没有缓存的请求根据配置的规则发送给邻居Squid和后台的WEB服务器处理,这样既减轻后台WEB服务器的负载,又提高整个网站的性能和安全性。该系统结构图3如下:

图3.系统结构





配置的系统环境:

一台DNS服务器:操作系统Freebsd,软件BIND9.5,IP192.168.76.222;

三台Squid服务器:操作系统LinuxAS4,软件Squid3.0,相应的IP如下:

Squid1:192.168.76.223Squid2:192.168.76.224Squid3:192.168.76.225

三台WEB服务器:操作系统LinuxAS4,应用软件Tomcat5.0+Mysql,相应的IP地址如下:

webServer1:210.82.118.195webServer2:192.168.76.226webServer1:192.168.76.227

应用软件的安装和配置

配置DNS服务器

软件利用Freebsd自带的bind9.5。然后针对该系统配置bind,首先修改bind的配置文件/etc/namedb/named.conf,在文件中添加

zone"cache.ibm.com.cn"{typemaster;file"master/cache.ibm.com.cn";};

再在/etc/namedb/master目录下添加cache.ibm.com.cn文件,该文件的内容如下:

$TTL3600@INSOAsearch.ibm.com.cn.root.ibm.com.cn.(20080807;Serial3600;Refresh900;Retry3600000;Expire3600);MinimumINNSsearch.ibm.com.cn.1INPTRlocalhost.ibm.com.cn.wenjinINA192.168.76.223wenjinINA192.168.76.224wenjinINA192.168.76.225

这样当用户请求的时候,DNS通过轮询机制将wenjin.cache.ibm.com.cn的域名解析为192.168.76.223、192.168.76.224和192.168.76.225其中之一。

配置完成后,运行rndcstart启动bind服务。可在/etc/rc.conf中设置named_enable="YES"使得开机自启动。

用ps–A|grepnamed查看bind服务是否起来;

用nslookupwenjin.cache.ibm.com.cn测试bind服务是否正常运行。

配置Squid1服务器

1.先安装gccgcc-c++opensslopenssl-devel的工具

yum-yinstallgccgcc-c++opensslopenssl-devel

2.修改描述符参数值

文件描述符用来限制一个程序能同时打开的文件数目,默认是1024。也就是说,如果不修

改文件描述符,那么一个程序只能同时打开1024个文件,而Squid会同时打开成千上万个

文件,所以远远是不够的,为了保证最高的效率和响应速度,要更改文件描述符的大小.

两种情况:a.用户每次访问squid,squid会按照需要打开文件,然后读取文件内容再返回给用户。

b.squid预先打开访问频率高的文件,用户访问squid,squid直接把内容返回给用户。相对来

说,后面的方法可以对用户的请求进行更加快的反应。

首先修改以下两个文件。

/usr/include/bits/typesizes.h

/usr/include/linux/posix_types.h

用vi打开上面的文件查找

#define__FD_SETSIZE1024

把1024改为65536,然后保存,这是Linux能接受的最大数值。

刚才编辑的这两个文件是C/C++程序里面的头文件,编译squid的时候会被自动引用。除了

这两个文件以外,我们还需要对当前环境进行设置。也就是你用ssh登录到系统时的一些

设定。每个登录进程都可以进行单独的设置,当关闭目前登录回话,环境变量的设置就失效



ulimit用来设置当前环境的一些资源限制。这个命令是对环境进行设置,所以退出当前登录

进程后命令将会失效。

我们输入下面的命令

[root@serversoft]#ulimit-Hs65536

[root@serversoft]#ulimit-n65536

也可以永久修改这些限制,开机自动生效,配置如下:

vi/etc/security/limits.conf,添加以下内容

*softnofile65536

*hardnofile65536

H参数是硬性限制,s是堆栈上限,n是文件描述符上限。


重启一下机器

注释:

ulimit参数介绍:

-H设置硬件资源限制.

-S设置软件资源限制.

-a显示当前所有的资源限制.

-csize:设置core文件的最大值.单位:blocks

-dsize:设置数据段的最大值.单位:kbytes

-fsize:设置创建文件的最大值.单位:blocks

-lsize:设置在内存中锁定进程的最大值.单位:kbytes

-msize:设置可以使用的常驻内存的最大值.单位:kbytes

-nsize:设置内核可以同时打开的文件描述符的最大值.单位:n

-psize:设置管道缓冲区的最大值.单位:kbytes

-ssize:设置堆栈的最大值.单位:kbytes

-tsize:设置CPU使用时间的最大上限.单位:seconds

-vsize:设置虚拟内存的最大值.单位:kbytes


下载squid-3.0.STABLE8.tar.gz源码包,将其放在/home目录下

3.临时端口范围

临时端口是TCP/IP栈分配给出去连接的本地端口。换句话说,当squid发起一条连接到另一台服务器,内核给本地socket分配一个端口号。这些本地端口号有特定的范围限制。

例如,在FreeBSD上,默认的临时端口范围是1024-5000。

临时端口号的短缺对非常忙的代理服务器(例如每秒数百个连接)来说,会较大的影响性能。这是因为一些TCP连接在它们被关闭时进入TIME_WAIT状态。当连接进入TIME_WATI状态时,临时端口号不能被重用。

你能使用netstat命令来显示有多少个连接进入这个状态:

%netstat-n|grepTIME_WAIT

ProtoRecv-QSend-QLocalAddressForeignAddress(state)

tcp400192.43.244.42.19583212.67.202.80.80TIME_WAIT

tcp400192.43.244.42.19597202.158.66.190.80TIME_WAIT

tcp400192.43.244.42.19600207.99.19.230.80TIME_WAIT

tcp400192.43.244.42.19601216.131.72.121.80TIME_WAIT

tcp400192.43.244.42.19602209.61.183.115.80TIME_WAIT

tcp400192.43.244.42.3128128.109.131.47.25666TIME_WAIT

tcp400192.43.244.42.3128128.109.131.47.25795TIME_WAIT

tcp400192.43.244.42.3128128.182.72.190.1488TIME_WAIT

tcp400192.43.244.42.3128128.182.72.190.2194TIME_WAIT

注意这个例子中既有客户端连接又有服务器端的连接。客户端连接有3128作为临时端口号,服务器端连接有80作为远程主机的端口号。临时端口号出现在本地地址栏里。在该例子里,它们是19000秒。

如果你没有看到数千个临时端口在TIME_WAIT状态,那也许不必增加这个端口范围。

在Freebsd上,用如下命令增加临时端口范围:

#sysctl-wnet.inet.ip.portrange.last=30000

在Linux上,简单的写一对数字到下列指定文件:

#echo"102440000">;/proc/sys/net/ipv4/ip_local_port_range

不要忘记将这些命令加到你的系统启动脚本中,以使机器每一次重启后都生效。


解压缩
tar–zxvfsquid-3.0.STABLE8.tar.gz


设置配置参数:
cdsquid-3.0.STABLE10




./configure--prefix=/usr/local/squid--enable-gnuregex--enable-arp-acl--enable-auth="basic"--enable-basic-auth-helpers="NCSA"--enable-async-io=80--enable-storeio=ufs--enable-icmp--enable-kill-parent-hack--enable-snmp--disable-ident-lookups--enable-cache-digests--enable-ssl--enable-delay-pools--enable-linux-netfilter--enable-underscore--enable-err-language="Simplify_Chinese"--enable-default-err-languages="Simplify_Chinese"--with-large-files-disable-mempools-disable-wccp-disable-wccpv2-enable-x-accelerator-var--enable-internal-dns



解释说明:
--prefix=/usr/local/squid//指定安装路径
--enable-arp-acl//这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗
--enable-async-io=80//这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了。另外此项还另cache文件支持aufs
--enable-auth-modules//此编译选项启用认证模块,可以对访问代理用户进行授权。
--enable-cache-digests//使能缓存摘要,本来此项目的是为了在Squid集群服务之间迅速发现缓存对象,这里在本地使用,可以加快请求时,检索缓存内容的速度。
--enable-err-language="Simplify_Chinese"和--enable-default-err-languages="Simplify_Chinese"//指定出错是显示的错误页面为简体中文
--enable-delay-pools//此选项使能一个延时池,这样能对某些特定的请求限制额定带宽。
--enable-gnuregex//由于Squid大量使用字符串处理做各种判断,加此项能更好处理。
--enable-icmp//加入icmp支持
--disable-ident-lookups//防止系统使用RFC931规定的身份识别方法。
--enable-kill-parent-hack//关掉suqid的时候,要不要连同父进程一起关掉,这个当然要啦
--enable-linux-netfilter//允许使用Linux的透明代理功能。
--enable-snmp//此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
--enable-storeio=ufs,null//使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要加上null文件系统。
--enable-underscore//允许解析的URL中出现下划先,因为默认squid会认为带下划线的URL地址是非法的,并拒绝访问该地址。
--with-large-files//让log支持大于2G,设置支持大文件,如果不设置,日志文件到了2G的时候squid就会报错
-disable-mempools//相当于2.7配置文件里面的memory_poolsoff,适合内存使用较大的情况,系统会调用free()来清除没用到的缓存内存
–with-maxfd=65535相当于ulimit-n65535,2.7配置文件里面的max_filedescriptors65535

--enable-internal-dns做多个网站反向代理时使用,允许使用内部dns,也可改/etc/hosts

--disable-wccp禁用WCCP协议

--disable-wccpv2禁用WCCP协议V2

编译安装:
make&makeinstall


假如你通过使用--enable-icmp选项,激活了squid的ICMP衡量功能,那么必须安装pinger程序。pinger程序必须以超级用户权限安装,因为仅仅允许root来发送和接受ICMP消息。

下列命令以相应的许可来安装pinger程序:

#makeinstall-pinger



安装完以后会在/usr/local目录下看见squid目录。

配置squid配置文件

编辑squid.conf文件,
vi/usr/local/squid/etc/squid.conf


#设置运行squid用户

cache_effective_usersquid

cache_effective_groupsquid

#########设定squid的主机名,如无此项squid将无法启动

visible_hostnamesquid1.nlc.gov.cn

#############配置squid为加速模式#################

http_port80accelvhostvport

icp_port3130

#####设置自己的hosts文件,当没有DNS的使用

hosts_file/etc/hosts

#####配置squid2、squid3为其邻居,当squid1在其缓存中没有找到请求的资源时,#通过ICP查询去其邻居中取得缓存

cache_peersquid2.ibm.com.cnsibling803130

cache_peersquid3.ibm.com.cnsibling803130

#####squid1的三个父节点,originserver参数指明是源服务器,round-robin参数指明#squid通过轮询方式将请求分发到其中一台父节点;squid同时会对这些父节点的健#康状态进行检查,如果父节点down了,那么squid会从剩余的origin服务器中抓

#取数据

cache_peer210.82.118.195parent80800no-queryoriginserverround-robinname=webServer1

cache_peer192.168.76.226parent80800no-queryoriginserverround-robinname=webServer2

cache_peer192.168.76.227parent80800no-queryoriginserverround-robinname=webServer3

####将wenjin.cache.ibm.com.cn域的请求通过RR轮询方式转发到三个父节点中的一#个

cache_peer_domainwebServer1webServer2webServer3wenjin.cache.ibm.com.cn

#keepalived

#因为现在的IE都是多线程,考虑到服务器带宽等网络资源消耗,所以长链接关闭

client_persistent_connectionsoff

#服务端长链接是用于在服务器端传递消息时使用已打开的socket链接以节省资源而

#设置的。

server_persistent_connectionson

#关闭此项将在访问某些论坛时显示的IP是代理服务器的IP,如果打开则显示是客户

#请求IP

forwarded_foron

log_icp_queriesoff#是否记录icp请求

request_header_max_size128KB#限制http请求header头得大小

####设置过期刷新时间

refresh_pattern^ftp:6020%10080

refresh_pattern^gopher:600%1440

refresh_pattern.020%1440

refresh_pattern-i\.css$36050%2880reload-into-ims

refresh_pattern-i\.js$144050%2880reload-into-ims

refresh_pattern-i\.html$72050%1440reload-into-ims

refresh_pattern-i\.jpg$144090%2880ignore-reload

refresh_pattern-i\.gif$144090%2880ignore-reload

refresh_pattern-i\.swf$144090%2880ignore-reload

refresh_pattern-i\.jpg$144050%2880ignore-reload

refresh_pattern-i\.png$144050%2880ignore-reload

refresh_pattern-i\.bmp$144050%2880ignore-reload

refresh_pattern-i\.doc$144050%2880ignore-reload

refresh_pattern-i\.ppt$144050%2880ignore-reload

refresh_pattern-i\.xls$144050%2880ignore-reload

refresh_pattern-i\.pdf$144050%2880ignore-reload

refresh_pattern-i\.rar$144050%2880ignore-reload

refresh_pattern-i\.zip$144050%2880ignore-reload

refresh_pattern-i\.txt$144050%2880ignore-reload

quick_abort_min20KB

quick_abort_max20KB

quick_abort_pct95

connect_timeout1minute

negative_ttl0minutes

read_timeout30seconds

pconn_timeout120seconds

shutdown_lifetime5seconds

strip_query_termsoff

####对端口的acl

aclSafe_portsport80#http

aclSafe_portsport21#ftp

aclSafe_portsport443563#https,snews

aclSafe_portsport70#gopher

aclSafe_portsport210#wais

aclSafe_portsport1025-65535#unregisteredports

aclSafe_portsport280#http-mgmt

aclSafe_portsport488#gss-http

aclSafe_portsport591#filemaker

aclSafe_portsport777#multilinghttp

http_accessdeny!Safe_ports

viaoff

httpd_suppress_version_stringoff#隐藏服务器信息

#log日志的轮换天数

logfile_rotat6

#####下面是一些访问控制、日志和缓存目录的设置

#设置不缓存url类型(空格隔开)

aclQUERYurlpath_regex.php.jsp.asp.pl.cgi

cachedenyQUERY

#-------------------------------------------------------------------------------------------

#设置最大连接数

#maxconnACL指来自客户IP地址的大量同时连接。某些squid管理员发现这是个有

#用的方法,用以阻止用户滥用代理或者消耗过多资源。maxconnACL在请求超过指#定的数量时,会匹配这个请求。因为这个理由,你应该仅仅在deny规则里使用#maxconn。下面的例子是:在该情况中,squid允许来自每个IP地址的同时连接数最

#大为10个。当某个客户发起第11个连接时,OverConnLimitACL被匹配,http_access#规则拒绝该请求。

#---------------------------------------------------------------------------------------------

aclOverConnLimitmaxconn10

http_accessdenyOverConnLimit

acllocalnetsrc192.168.76.223192.168.76.224192.168.76.225

#aclallsrc0.0.0.0/0.0.0.0不要在squid3.0里写这一行,因为squid3.0已经集成了all的定

#义,如果写了这一行会报0.0.0.0的错误

http_accessallowall

cache_peer_accesswebServer1allowall

cache_peer_accesswebServer2allowall

cache_peer_accesswebServer3allowall

icp_accessallowlocalnet

#日志格式,设置access_log中日志存储的格式  

  

logformatsquid%ts.%03tu%6tr%>a%Ss/%03Hs%<st%rm%ru%un%Sh/%<A%mt

access_log/usr/local/squid/var/logs/access.logsquid

#设置PID

pid_filename/usr/local/squid/var/logs/squid.pid

cache_log/usr/local/squid/var/logs/cache.log

#不记录store.log 

cache_store_lognone

###### #错误信息目录

error_directory/usr/local/squid/share/errors/Simplify_Chinese
######缓存目录

cache_dirufs/usr/local/squid/var/cache/100016256

max_open_disk_fds0

  

#缓存内容大小控制,当cache目录被占用到97%时,内容将被清空20%

  

cache_swap_low80

  

cache_swap_high97

#######对squid的一些优化###############

###最大和最小缓存对象

maximum_object_size20MB

minimum_object_size0KB

###内存中缓存的最大对象5M

maximum_object_size_in_memory5MB

###squid用于缓存的内存量一般内存的的1/3或1/2+100M,不可太多

cache_mem256MB

#MISCELLANEOUS

store_objects_per_bucket15

client_dboff

##############http-header###############################header安全配置

reply_header_accessViadenyall

reply_header_accessCache-Controldenyall

reply_header_accessServerdenyall

reply_header_accessX-Squid-Errordenyall

reply_header_accessX-Forwarded-Fordenyall

request_header_accessViadenyall

request_header_accessAgedenyall

request_header_accessX-Squid-Errordenyall

request_header_accessPragmadenyall

保存后:wq退出。

在/etc/hosts文件中添加

192.168.76.223squid1.ibm.com.cn

192.168.76.224squid2.ibm.com.cn

192.168.76.225squid3.ibm.com.cn

保存后:wq退出。

#addusersquid

  

#addgroupsquid

  

#mkdir/usr/local/squid/var/cache

  

#mkdir/usr/local/squid/var/logs

  

#chown-Rsquid:squid/usr/local/squid/var/cache//默认nobody运行

  

#chown-Rsquid:squid/usr/local/squid/var/logs

检查squid配置文件正确与否:
/usr/local/squid/bin/squid–kparse


生成缓存目录
/usr/local/squid/bin/squid–z


以后台方式启动
squid:/usr/local/squid/bin/squid-s


配置squid2和squid3服务器

squid2和squid3服务器的配置方法和配置参数和squid1一样,配置完成后,分别启动这两个服务器上的squid服务。

在squid的日志文件cache.log中,出现如下日志信息则说明三台squid之间成功配置为sibling,且配置了三个父代理。

2008/11/1710:08:47|ConfiguringSiblingsquid1.ibm.com.cn/80/31302008/11/1710:08:47|ConfiguringSiblingsquid3.ibm.com.cn/80/31302008/11/1710:08:47|ConfiguringParent210.82.118.195/8080/02008/11/1710:08:47|ConfiguringParent192.168.76.226/8080/02008/11/1710:08:47|ConfiguringParent192.168.76.227/8080/02008/11/1710:08:47|Readytoserverequests.

测试

测试之前,保证DNS服务、三台squid服务和三台web服务都正常起来。在客户端输入http://wenjin.cache.ibm.com.cn,则正确的显示该网页。服务器端的响应对客户端是透明的,客户端不知道请求是由哪台WEB服务器处理的;而且其中某台Squid服务器或WEB服务器发生故障,也不影响服务的正常运行。

回页首

总结

Squid是一个开源的软件,利用它的反向代理技术可以提高网站系统的访问速度。本文在真实的网络环境下,利用三台squid反向代理服务器加速了网站的性能,同时结合DNS轮询技术实现了网站的负载均衡。经过一段时间的测试和试运行,该网站的访问速度和可用性方面都有很大的提高,从未出现过网站服务中断情况。

squid常用命令详解:

1、初始化你在squid.conf里配置的cache目录

#squid/sbin/squid-z//第一次启动squid服务时必须输入此命令

如果有错误提示,请检查你的cache目录的权限。

2、对你的squid.conf排错,即验证squid.conf的语法和配置。

#squid/sbin/squid-kparse

如果squid.conf有语法或配置错误,这里会返回提示你,如果没有返回,恭喜,可以尝试启动squid.

3、在前台启动squid,并输出启动过程。

#squid/sbin/squid-N-d1

如果有到readytoserverreques,恭喜,启动成功。

然后ctrl+c,停止squid,并以后台运行的方式启动它。

4、启动squid在后台运行。

#squid/sbin/squid-s

这时候可以ps-A来查看系统进程,可以看到俩个squid进程。

5、停止squid

#squid/sbin/squid-kshutdown

假如因为某些理由,squid.pid文件丢失或不可读,squid-k命令会失败。在此情形下,你可以用#pkill-9squid来强制关闭

6、重引导修改过的squid.conf

#squid/sbin/squid-kreconfigure

这个估计用的时候比较多,当你发现你的配置有不尽你意的时候,可以随时修改squid.conf,然后别忘记对你的squid.conf排错,然后再执行此指令,即可让运行中squid重新按照你的squid.conf来运行。

7、把squid添加到系统启动项

编辑/etc/rc.d/rc.local

添加如下行:/usr/local/squid/sbin/squid-s

当然,并不是每个人都喜欢这种启动方式,你可以用你最习惯的方式;或者把它安装为服务。

8、滚动日志文件

除非你在squid.conf里禁止,squid会写大量的日志文件。你必须周期性的滚动日志文件,以阻止它们变得太大。squid将大量的重要信息写入日志,假如写不进去了,squid会发生错误并退出。为了合理控制磁盘空间消耗,在cron里使用如下命令:

%squid-krotate

例如,如下任务接口在每天的早上4点滚动日志:

04***/usr/local/squid/sbin/squid-krotate

该命令做两件事。首先,它关闭当前打开的日志文件。然后,通过在文件名后加数字扩展名,它重命名cache.log,store.log,和access.log。例如,cache.log变成cache.log.0,cache.log.0变成cache.log.1,如此继续,滚动到logfile_rotate选项指定的值。

squid仅仅保存每个日志文件的最后logfile_rotate版本。更老的版本在重命名过程中被删除。假如你想保存更多的拷贝,你需要增加logfile_rotate限制,或者编写脚本用于将日志文件移动到其他位置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: