【转】 在linux环境下部署tomcat应用+配置优化
配置linux下的tomcat
一、jdk的安装
1.以root身份等陆
2.打开一个终端
3.输入命令ls -l查看安装的文件的权限
#cd /home
#cp jdk1.4.2.rpm.bin /usr/local
#cd /usr/local
给所有的用户添加可执行的权限
#chmod a+x jdk1.4.2.rpm.bin
#./jdk1.4.2.rpm.bin
会生成文件jdk1.4.2.rpm
同样给所有的用户添加可执行权
chmod a+x jdk1.4.2.rpm
安装程序 rpm -ivh jdk1.4.2.rpm
接受协议,按enter即可
使用默认的安装目录,在 /usr/java/下
二、安装tomcat
tar –xvzf jakarta-tomcat-5.5.9.tar.gz
mv jakarta-tomcat-5.5.9 tomcat5.9
完成后,会在/usr/tomcat出现tomcat5.9目录,里边就是tomcat的文件。
三、配置环境变量
vi .bash_profile
加入如下内容:
JAVA_HOME=/usr/java/jdk1.5.0_04
export JAVA_HOME
CATALINA_HOME=/yewu/tomcat/tomcat5.9
export CATALINA_HOME
CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/common/lib
export CLASSPATH
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export PATH
保存退出。
四、配置启动tomcat
1、手动启动,将这个文件放在根/bin下,名称为100class
#!/bin/sh
CATALINA_HOME=/usr/tomcat/tomcat-5.0.28
export CATALINA_HOME
$CATALINA_HOME/bin/startup.sh
#case "$1" in
#start)
# $CATALINA_HOME/bin/startup.sh
# ;;
#stop)
# $CATALINA_HOME/bin/shutdown.sh
# ;;
#esac
2、自动启动,将这个文件放在/etc/init.d下,名称为100classServer
#!/bin/sh
case "$1" in
start)
CATALINA_HOME=/usr/tomcat/tomcat-5.0.28
export CATALINA_HOME
JAVA_HOME=/usr/java/jdk1.5.0_12
export JAVA_HOME
echo $JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
cd $CATALINA_HOME/bin
$CATALINA_HOME/bin/startup.sh
cd -
;;
stop)
CATALINA_HOME=/usr/tomcat/tomcat-5.0.28
export CATALINA_HOME
JAVA_HOME=/usr/java/jdk1.5.0_12
export JAVA_HOME
echo $JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
echo $PATH
$CATALINA_HOME/bin/shutdown.sh
;;
*)
echo "Usage: 100classServer {start|stop}"
exit 1
esac
exit 0
说明:要在etc/rc2.d等目录,从rc1~6下加入S99100class的链接,系统在启动时,自动加载tomcat服务
3、拷贝%JAVA_HOME%/lib/tools.jar拷贝到%CATALINA_HOME%/common/lib下,可选择
4、在tomcat-users.xml下增加用户名称100class密码100class,加入相应的角色
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
5、调用htt://localhost:8080/manager,部署war文件
配置: cd jsvc-src
chmod +x configure
./configure --with-java=/usr/jdk
编译: make
检验: ./jsvc -help
程序代码:
#
# Startup Script for Tomcat5
#
# chkconfig: 345 87 13
# description: Tomcat Daemon
# processname: jsvc
# pidfile: /var/run/jsvc.pid
# config:
#
# Source function library.
. /etc/rc.d/init.d/functions
#
prog=tomcat
#
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
# <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
# <Connector className="org.apache.catalina.connector.http.HttpConnector"
# port="80" minProcessors="5" maxProcessors="75"
# enableLookups="true" redirectPort="8443"
# acceptCount="10" debug="0" connectionTimeout="60000"/>
#
# You need a developement version of Tomcat (Apache Tomcat/4.1-dev)
#
# Adapt the following lines to your configuration
CATALINA_HOME=/apache/tomcat
DAEMON_HOME=$CATALINA_HOME/bin/jsvc-src
TOMCAT_USER=root
TMP_DIR=/var/tmp
CATALINA_OPTS=
CLASSPATH=$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/bin/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar
echo -n $"Starting $prog: "
#
# Start Tomcat
#
$DAEMON_HOME/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Djava.io.tmpdir=$TMP_DIR \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/jsvc
[ $RETVAL = 0 ] && echo_success || echo_failure
echo
return $RETVAL
}
stop(){
echo -n $"Stopping $prog: "
#
# Stop Tomcat
#
PID=`cat /var/run/jsvc.pid`
kill $PID
RETVAL=$?
[ $RETVAL = 0 ] && rm /var/lock/subsys/jsvc
[ $RETVAL = 0 ] && echo_success || echo_failure
echo
return $RETVAL
}
start)
start
;;
stop
;;
stop
start
;;
echo "Usage $0 start/stop"
exit 1;;
esac
修改下载的脚本里面有关路径的信息以及要启动Tomcat的用户(用户必须已存在)
拷贝脚本到/etc/rc.d/init.d目录下的tomcat文件,给该脚本赋予可执行权限
你可以使用命令
chkconfig --add tomcat
重新启动系统后可以启动的过程中看到Starting Tomcat ..... [OK]的信息,这样就完成设置过程。
附:vi编辑器的操作
打开文件:vi 文件名
从命令模式切换到输入模式:a
输入模式切换到命令模式:ESC
末行模式::
保存::w
保存退出::wq
不保存强制退出::q!
保存强制退出::wq!
光标移动到文件首:[[
光标移动到文件尾:]]
下翻页:ctrl+f
上翻页:ctrl+b
优化:Tomcat 5常用优化和配置
========================================================================
1、JDK内存优化:
Tomcat默认能够使用的内存为128MB,Windows下,在文档{tomcat_home}/bin/catalina.bat,Unix下,在文档{tomcat_home}/bin/catalina.sh的前面,增加如下配置:
JAVA_OPTS='-Xms[初始化内存大小] -Xmx[能够使用的最大内存]
一般说来,您应该使用物理内存的 80% 作为堆大小。
2、连接器优化:
在tomcat配置文档server.xml中的配置中,和连接数相关的参数有:
maxThreads:
Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。
acceptCount:
指定当任何能够使用的处理请求的线程数都被使用时,能够放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。
minSpareThreads:
Tomcat初始化时创建的线程数。默认值4。
maxSpareThreads:
一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。
enableLookups:
是否反查域名,默认值为true。为了提高处理能力,应配置为false
connnectionTimeout:
网络连接超时,默认值60000,单位:毫秒。配置为0表示永不超时,这样配置有隐患的。通常可配置为30000毫秒。
maxKeepAliveRequests:
保持请求数量,默认值100。
bufferSize:
输入流缓冲大小,默认值2048 bytes。
compression:
压缩传输,取值on/off/force,默认值off。
其中和最大连接数相关的参数为maxThreads和acceptCount。假如要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数配置,通常Windows是2000个左右,Linux是1000个左右。
3、tomcat中如何禁止和允许列目录下的文档
在{tomcat_home}/conf/web.xml中,把listings参数配置成false即可,如下:
<servlet>
...
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
...
</servlet>
4、tomcat中如何禁止和允许主机或IP地址访问
<Host name="localhost" ...>
...
<Valve className="org.apache.catalina.valves.RemoteHostValve"
allow="*.mycompany.com,www.yourcompany.com"/>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
deny="192.168.1.*"/>
...
</Host>
这是我们服务器的配置,具体文档不能给您,因为涉及到公司机密,所以那一行我给您,我拷贝下来了
JAVA_OPTS='-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8'