??xml version="1.0" encoding="utf-8" standalone="yes"?> vi /etc/xinetd.d/cvs 在其中添?/font> service cvspserver { socket_type = stream wait = no user = root env = HOME= server = /usr/bin/cvs server-tags = --allow-root=/home/cvsroot pserver } d仓库: q入C的源码目?/font> cd /your/sources/path 然后执行 cvs export SOURCE_DIR_NAME Author Version 其中的SOURCE_DIR_NAME 是你的工程?CVSROOT 目录中保存的目录? Author 为工E作者, Version Z的工E发行版本号Q必M字母开?/font> Apache的安装,考虑只用?/span>Tomcat的前D代理,处理囄和静态文件的hQƈ把动态请求{发到tomcat服务处理。本文用编译安装方式,把跟需求无关的模块关闭Q只使用最的模块~译Q提高Y件性能?/span> 配置~译命o请参考: http://www.uplinux.com/download/doc/apache/ApacheManual/install.html#configure ~译参数说明Q?/span> ~译和包含是两个不同的概c编译是指这个模块被~译了,要想使用它,只用单的修改httpd.conf加上LoadModule xxx_module
libexec/mod_xxx.so 明确指出?/span> 用以前命令可以查看缺省时已编译和包含q去的模块。不用显式的--enable-MODULE[=shared] ?/span>LoadModule 操作。就已经可以使用的?/span> 安装完成后,因ؓ~译关闭了很多默认的功能模块Q所以直接用发布的默认配置是不能启动服务器的,需要作调整?/span> ?/span>apache的安装目录ؓ$APACHE_HOME 备䆾默认配置文g$APACHE_HOME/conf/httpd.confQ然后?/span>highperformance.conf最为配|文?/span> 如果启动p|Q请屏蔽?/span>httpd.conf中的mod_access相关命oQ如Order{,关于目录权限的控制在本例中可以用变通方式解冻I使用没有加蝲目录权限控制功能?/span> 启动验证Q访?/span>http://$IP/Q如果正常显C页面,表示成功?/span> MPMQ?/span>Multi-Processing ModulesQ多道处理模块) 指定MPM的方?/span> $ ./configure --help|grep mpm 昄如下Q?/span> --with-mpm=MPM
Choose
the process model for Apache to use. MPM={beos|worker|prefork|mpmt_os2|
perchild|leader|threadpool} 主要阐述preforkQ如果不用?/span>--with-mpm”显式指定某U?/span>MPMQ?/span>prefork是Unixq_上缺省的MPMQ?/span>prefork本nq没有用到U程Q?/span>2.0版用它是ؓ了与1.3版保持兼Ҏ;prefork用单独的子进E来处理不同的请求,q程之间是彼此独立的Q这也其成为最E_?/span>MPM之一?/span> prefork的工作原理是Q控制进E在最初徏立?/span>StartServers”个子进E后Qؓ了满?/span>MinSpareServers讄的需要创Z个进E,{待一U钟Ql创Z个,再等待一U钟Ql创建四个……如此按指数U增加创建的q程敎ͼ最多达到每U?/span>32个,直到满MinSpareServers讄的gؓ止。这是预派生(preforkQ的由来。这U模式可以不必在h到来时再产生新的q程Q从而减了pȝ开销以增加性能?/span> 下面?/span>prefork的默认配|段Q?/span> <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> MinSpareServers 讄了最的I闲q程数?/span> MaxSpareServers 讄了最大的I闲q程敎ͼ如果I闲q程数大于这个|Apache会自?/span>kill掉一些多余进E。这个g要设得过大,但如果设的值比MinSpareServers,Apache会自动把其调整ؓMinSpareServers+1。如果站点负载较大,可考虑同时加大MinSpareServers?/span>MaxSpareServers?/span> MaxClients MaxClients是这些指令中最为重要的一个,讑֮的是Apache可以同时处理的请求,是对Apache性能影响最大的参数。其~省?/span>150是远q不够的Q如果请求L已达到这个|可通过ps -ef|grep
http|wc -l来确认)Q那么后面的hp排队Q直到某个已处理h完毕。这是pȝ资源q剩下很多?/span>HTTP讉K却很慢的主要原因。系l管理员可以Ҏg配置和负载情冉|动态调整这个倹{虽然理Zq个D大,可以处理的请求就多Q但Apache默认的限制不能大?/span>256Q在2.0中源?/span>#define DEFAULT_SERVER_LIMIT 256Q。如果把q个D为大?/span>256Q那?/span>Apache无法v动。事实上Q?/span>256对于负蝲E重的站点也是不够的。在Apache 1.3中,q是个硬限制。如果要加大q个|必须在?/span>configure”前手工修改的源代码树下?/span>src/include/httpd.h中查?/span>256Q就会发现?/span>#define HARD_SERVER_LIMIT MaxRequestsPerChild 讄的是每个子进E可处理的请求数。每个子q程在处理了?/span>MaxRequestsPerChild”个h后将自动销毁?/span>0意味着无限Q即子进E永不销毁。虽然缺省设?/span>0可以使每个子q程处理更多的请求,但如果设成非零g有两炚w要的好处Q可防止意外的内存泄漏;在服务器负蝲下降的时侯会自动减少子进E数?/span> Apache+jk2的每个进E的的大是 apache_max_process_with_good_perfermance
< ( xx能讄?/span>:400 按照上面的分析,本系l的?/span>prefork.c配置为: 通过加入mode_deflate模块Ҏ务器输出压羃传输Q可以减输出压力,节约带宽?/span> 可以减少40%左右的流量,减少机器用于传输的负?/span>. 压羃输出的配|需要以下三个模块功能支?/span> mod_setenvif.c mod_deflate mod_headers 具体说明请参考:http://www.uplinux.com/download/doc/apache/ApacheManual/mod/ 配置 参考:http://www.uplinux.com/download/doc/apache/ApacheManual/mod/mod_deflate.html 1Q删除不需要的理应用和帮助应用,提高tomcat安全性?/span> # 删除webapps下所有文?/span> # rm –fr $CATALINA_HOME/webapps/* # 删除server/wenapps下所有文?/span> # rm –fr $CATALINA_HOME/server/webapps/* 2Q精sever.xml配置文g 使用tomcat发布版本中的最配|文Ӟ提高性能Q如果有功能上的需求,在逐个的加入功能配|?/span> # 备䆾原来?/span>server.xml?/span>server.xml_bak # mv server.xml server.xml_bak # 复制server-minimal.xml?/span>server.xml # cp server-minimal.xml server.xml ?/span>$CATALINA_HOME/conf/server.xml配置文g中的Connetctor节点Q和q接数相关的参数配置和优化?/span> maxThreads Tomcat使用U程来处理接收的每个h。这个DC?/span>Tomcat可创建的最大的U程数。默认?/span>200?/span> 可以Ҏ机器的时期性能和内存大调_一般可以在400-500。最大可以在800左右?/span> acceptCount 指定当所有可以用的处理h的线E数都被使用Ӟ可以攑ֈ处理队列中的h敎ͼ过q个数的h不予处理。默认?/span>10?/span> minSpareThreads maxSpareThreads enableLookups 是否反查域名Q默认gؓtrue。ؓ了提高处理能力,应设|ؓfalse connnectionTimeout |络q接时Q默认?/span>20000Q单位:毫秒。设|ؓ0表示怸时Q这栯|有隐患的。通常可设|ؓ30000毫秒?/span>(本系l由于与后台pȝ接口时旉较长Q用设|ؓ60000) maxKeepAliveRequests 保持h数量Q默认?/span>100?/span> bufferSize 压羃传输Q取?/span>on/off/forceQ默认?/span>off?/span> 其中和最大连接数相关的参CؓmaxThreads?/span>acceptCount。如果要加大q发q接敎ͼ应同时加大这两个参数?/span>web server允许的最大连接数q受制于操作pȝ的内核参数设|,通常Windows?/span>2000个左叻ILinux?/span>1000个左叟?/span> Tomcat中如何禁止和允许列目录下的文?/span> ?/span>$CATALINA_HOME/conf/web.xml中,?/span>listings参数讄?/span>false卛_Q如下: ... 具体操作 # vi $CATALINA_HOME/conf/server.xml 修改用于AJP的连接: <Connector port="8009"
protocol="AJP/1.3" /> 为:
<Connector port="8009" maxTreads="500"
minSpareThreads="10" maxSpareThreads="50" acceptCount="50"
connectionTimeout="60000" enableLookups="false"
redirectPort="8443" protocol="AJP/1.3" /> 修改通用q接Q?/span> <Connector port="8080" /> 为:
<Connector port="8080" maxTreads="500"
minSpareThreads="10" maxSpareThreads="50" acceptCount="50"
connectionTimeout="60000" enableLookups="false"
redirectPort="8443" protocol="AJP/1.3"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"/> 修改L和应用配|: <Host name="localhost"
appBase="webapps" /> 为:
<Host name="localhost" appBase=" "
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/www/xxxx/site/web"
reloadable="true" debug="0"/>
</Host> Tomcat默认可以使用的内存ؓ128MB,Windows?/span>,在文?/span>{tomcat_home}/bin/catalina.batQ?/span>Unix下,在文?/span>$CATALINA_HOME/bin/catalina.sh的前面,增加如下讄Q?/span> JAVA_OPTS='$JAVA_OPTS
-Xms[初始化内存大?/span>] -Xmx[可以使用的最大内?/span>] 讄环境变量Q?/span>export JAVA_OPTS=?JAVA_OPTS -Xms[初始化内存大?/span>] -Xmx[可以使用的最大内?/span>]?/span> 一般说来,你应该用物理内存的 80% 作ؓ堆大。如果本Z?/span>Apache服务器,可以先折?/span>Apache需要的内存Q然后修改堆大小。徏议设|ؓ70Q;讄[[初始化内存大?/span>]{于[可以使用的最大内?/span>]Q这样可以减^凡分配堆而降低性能?/span> 本例使用加入环境变量的方式: # vi /etc/profile 加入Q?/span>export JAVA_OPTS=?JAVA_OPTS
-Xms700 –Xmx700 # source /etc/profile
set
WshShell
=
WScript.CreateObject(
"
WScript.Shell
"
)
WshShell.run
"
svnserve -d -r h:/repository
"
,
0
,
true
把上面脚本保存ؓ:auto_run_svnserve.vbsQ然后加入到启动里面或是注册表run里面Q系l启动的时候就自动启动?span style="COLOR: #000000">svnserve服务。注意:U色部分Z的仓库的物理地址?/font>
]]>
RH linux AS 4下默认安装有CVS服务器?br />
建立CVSl和用户
# groupadd cvs
创徏默认的管理̎?br /># useradd -g cvs -G cvsroot
# passwd cvsroot
创徏普通操作用?br /># useradd -g cvs -s sbin/nologin -M cvsuser
# passwd cvsuser
建立仓库
# cd /usr
# mkdir cvsroot
# chown -R cvsroot:cvs /usr/cvsro
加入:export CVSROOT=/usr/cvsroot?etc/profile
配置自动启动
?/etc/xinetd.d 目录下创Z个文Ӟ随便命名Q比?cvs
/etc/init.d/xinetd restart
初始化和加入仓库
cvs init /usr/cvsroot
q样CVS可以用?/font>
]]>
]]>1.Apache安装配置
$ tar –xzvf apache-2.0.59.tar.gz
$ cd httpd2.0.59
$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/usr/apache-2.0.59 \
--disable-access \
--disable-auth \
--disable-include \
--disable-env \
--disable-status \
--disable-autoindex \
--disable-asis \
--disable-cgi \
--disable-negotiation \
--disable-imap \
--disable-actions \
--disable-userdir \
--disable-alias \
--enable-deflate \
--enable-headers \
--enable-setenvif \
--enable-so
$ make
$ make install
$ mv httpd.conf httpd.conf_bak
$ cp highperformance.conf httpd.conf
$ ../bin/apachectr start2.PMP
apache_max_process Q?/span>400 * 1.5 = 700
ServerLimit 400
MaxClients 400
StartServers 5
MinSpareServers 5
MaxSpareServers 10
</IfModule>3.gzip压羃输出
# Compress everything except images
<Location />
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</Location>
]]>1._Tomcat和配|文?/span>
2.q接器优?/span>
Tomcat初始化时创徏的线E数。默认?/span>4?/span>
一旦创建的U程过q个|Tomcat׃关闭不再需要的socketU程。默认?/span>50?/span>
输入缓冲大,默认?/span>2048 bytes?/span>
compression
listings
false3.优化JDK
?/span>4.APR整合
]]>
]]>
1. 准备
操作pȝQ?/span>
RedHat
AS4 update1
Tomcat-
arp
jdk1.5.x:http://java.sun.com
?/span>
请安装完成后Q设|?/span>
JAVA_HOME
默认安装后,
apr
的安装目录ؓQ?/span>
/usr/local/apr
$ cd /tools
$ wget http://apache.mirrors.tds.net/apr/apr-
$ tar -xzvf apr-1.2.8.tar.gz
$ cd apr-1.2.8
$ ./configure
$ make
$ make install
$ cd /tools
$ wget http://archive.apache.org/dist/tomcat/tomcat-5/v
$ tar -xzvf apache-tomcat-5.5.17.tar.gz
$ mv apache-tomcat-5.5.17 /usr/local/
2.3.
安装
APR
tomcat-5.5.x
?/span>
apr
lg是和
tomcat-5.5.x
一起发布的Q默认在
$CATALINA_HOME/bin/tomcat-native.tar.gz
$ cd $CATALINA_HOME/bin/
$ tar -xzvf tomcat-native.tar.gz
$ cd tomcat-native-1.1.3/jni/native
$ ./configure --with-apr=/usr/local/apr
$ make
$ make install
修改
tomcat
的启?/span>
shell
Q?/span>
catalina.sh
Q,在该文g中加入启动参敎ͼ
CATALINA_OPTS="$CATALINA_OPTS
-Djava.library.path=/usr/local/apr/lib"
。也可以在环境变量中配置
:export
CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib"
$ export CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib
$ cd $CATALINA_HOME/bin
$ ./catalina.sh run
如果看到下面的启动日志,表示成功?/span>
2007-4-26 15:34:32 org.apache.coyote.http11.Http11AprProtocol init
tomcat apr
lg官方Q?/span>
http://tomcat.apache.org/tomcat-5.5-doc/apr.html
%TOMCAT_HOME%/bin/catalina.sh
扑ֈq样一D:
在其后加上: