当前位置: > Linux服务器 > Tomcat >

linux下安装tomcat及优化

时间:2014-06-28 05:19来源:linux.it.net.cn 作者:IT网

本文主要内容:

(1)安装apr,这是 Apache 为了提升 Tomcat 的性能搞的一套本地化 Socket, Thread, IO ****也就是说它有高级 IO 功能, 操作系统级别的功能调用, 以及本地进程处理等等。

(2)安装Tomcat Native,这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。

(3)安装tomcat为系统服务

(4)优化tomcat的jvm内存池

(5)修改tomcat的并发连接数

 

一、安装apr

(1)安装apr

 

 
# tar zxvf apr-1.4.2.tar.gz  
# cd apr-1.4.2 
# ./configure --prefix=/usr/local/www/apr 
# make 
# make install

(2)安装apr-iconv

 

 
# tar -zxvf apr-iconv-1.2.1.tar.gz 
# cd apr-iconv-1.2.1 
# ./configure --prefix=/usr/local/www/apr-iconv --with-apr=/usr/local/www/apr  
# make 
# make install

(3)安装apr-util

 

 
# tar zxvf apr-util-1.3.9.tar.gz 
# cd apr-util-1.3.9 
# ./configure --prefix=/usr/local/www/apr-util  --with-apr=/usr/local/www/apr  
--with-apr-iconv=/usr/local/www/apr-iconv/bin/apriconv  
# make 
# make install

 

二、安装tomcat和tomcat-native

(1)JDK安装

 

 
# chmod a+x jdk-6u18-linux-i586-rpm.bin 
# ./jdk-6u7-linux-i586-rpm.bin 
# ln -s /usr/java/jdk1.6.0_18 /usr/local/java

设置环境变量

 

 
# vi /etc/profile 
末尾增加如下内容 

JAVA_HOME=/usr/local/java 
CLASSPATH=/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar 
PATH=/usr/local/java/bin:$PATH 
export PATH JAVA_HOME CLASSPATH 

# source /etc/profile

 
查看java版本,如果是1.6的,就是说明安装成功了。

 

 
# java –version

(2)安装Tomcat

 

 
# tar -zxvf apache-tomcat-6.0.26.tar.gz  
# mv apache-tomcat-6.0.26 /usr/local/www/tomcat 

# vi /usr/local/www/tomcat/bin/catalina.sh 
加入一行: 
JAVA_HOME=/usr/local/java

启动tomcat

 

 
# /usr/local/www/tomcat/bin/startup.sh

 

(3)安装tomcat-native

 
# cp tomcat-native-1.1.20-src.tar.gz /usr/local/www/tomcat/bin/

 
# cd /usr/local/www/tomcat/bin    
# tar zxvf tomcat-native-1.1.20-src.tar.gz  
# cd tomcat-native-1.1.20-src/jni/native    
# ./configure --with-apr=/usr/local/www/apr --with-java-home=/usr/local/java  
# make   
# make install

(4)设置 apr 的环境变量:

 

 
# vi /etc/profile    
后面添加以下内容    

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

环境变量立即生效   

 

 
# source /etc/profile

启动 tomcat 后, 看日志:

 

 
# more /usr/local/www/tomcat/logs/catalina.out 
  
Dec 5, 2009 3:25:39 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.

 

三、tomcat添加到系统服务

 

 
# cd /usr/local/www/tomcat/bin/ 
# tar -zxvf jsvc.tar.gz  
# cd jsvc-src 
# chmod a+x configure 
# ./configure --with-java=/usr/local/java 
# make 
# cp /usr/local/www/tomcat/bin/jsvc-src/native/Tomcat5.sh /etc/rc.d/init.d/tomcat 

# vi /etc/rc.d/init.d/tomcat

在#!bin/sh下添加

 

 
#chkconfig: 2345 85 15 
#description: apache-tomcat.6

相应的内容修改为如下内容:

 

 
JAVA_HOME=/usr/local/java 
CATALINA_HOME=/usr/local/www/tomcat 
DAEMON_HOME=/usr/local/www/tomcat/bin 
TOMCAT_USER=tomcat 
CATALINA_BASE=/usr/local/www/tomcat 
CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib" 
$DAEMON_HOME/jsvc-src/jsvc   #有两处

添加执行用户tomcat

 

 
# groupadd tomcat 
# useradd -g tomcat -s /sbin/nologin -M tomcat

加入系统服务,开机自启动

 

 
# chown -R tomcat.tomcat /usr/local/www/tomcat 
# chmod a+x /etc/rc.d/init.d/tomcat  
# chkconfig --add tomcat 
# chkconfig tomcat on

 

四、修改Java虚拟机的虚拟内存

(1)添加tomcat管理员

 

 
# vi /usr/local/www/tomcat/conf/tomcat-users.xml 

在<tomcat-users>  </tomcat-users>中间添加 
<role rolename="manager"/> 
<user username="tomcat" password="lin31415926" roles="manager"/> 

其中username="tomcat"为用户名password="lin31415926"为密码

 

(2)修改Java虚拟机的虚拟内存

tomcat默认的JVM比较小

查看JVM

打开http://ip:8080/

点击"status",查看JVM选项

 
Free memory: 3.25 MB Total memory: 7.62 MB Max memory: 121.81 MB

 

 

 
# vi /etc/init.d/tomcat 

在CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"下方添加一句 

JAVA_OPTS="-Xms1024m -Xmx1024m -Xmn256m -Djava.awt.headless=true" 

在$CATALINA_OPTS /上面添加一句 

$JAVA_OPTS /

 
重启一下tomcat,然后再次查看JVM 

Free memory: 953.12 MB Total memory: 998.43 MB Max memory: 998.43 MB

 

五、修改tomcat并发连接数

tomcat6.0 默认并发数为200,查看方法和JVM一样,查看http-8080选项

Max threads: 200

 

 
# vi /usr/local/www/tomcat/conf/server.xml  
修改前: 

<Connector port="8080" protocol="HTTP/1.1"    
                redirectPort="8443"   
                connectionTimeout="20000"   
                />   
修改后:   

<Connector port="8080" protocol="HTTP/1.1"    
                maxHttpHeaderSize="8192" useBodyEncodingForURI="true"   
                maxThreads="1000" 
                redirectPort="8443"   
                enableLookups="false"   
                compression="on"    
                compressionMinSize="2048"   
                compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"    
                connectionTimeout="20000"   
                disableUploadTimeout="true"   
                />

 
<!--  
   port:Tomcat服务器监听的端口号 
   maxHttpHeaderSize:Http的Header的最大限制 
   enableLookups="false" 使用允许DNS查询,通常情况下设置为false 
   redirectPort 服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号 
   maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。 
   acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。 
   connectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 
   minSpareThreads Tomcat初始化时创建的线程数。 
   maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。 
   compression="on" 打开压缩功能 
   compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB  
   compressableMimeType压缩类型 
-->

 

重启tomcat后再次查看

 
Max threads: 1000

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容