LINUX下JAVA+TOMCAT6+APR安装和优化

LINUX下JAVA+TOMCAT6+APR安装和优化

2011年1月21日 caixi 发表评论 阅读评论

LINUX下JAVA+TOMCAT6+APR安装和优化

当前内核环境:Linux 2.6.18-164.el5 x86_64 (Centos 5.4_x64)

安装前准备–下载软件安装包(jdk,apr,tomcat):

mkdir -p /data/source
/data/source
wget http://10.0.0.221/mysoft/jdk-6u21-linux-x64-rpm.bin #请据据自已的系统选择好JDK版本,这里是64位系统
wget http://10.0.0.221/mysoft/apache-tomcat-6.0.29.tar.gz
wget http://10.0.0.221/mysoft/apr-1.4.2.tar.gz
wget http://10.0.0.221/mysoft/apr-iconv-1.2.1.tar.gz
wget http://10.0.0.221/mysoft/apr-util-1.3.10.tar.gz

JDK下载http://www.oracle.com/technetwork/java/javase/downloads/index.html
APR下载http://labs.renren.com/apache-mirror/apr/

一、安装JDK,APR
1.安装JDK环境:

chmod u+x jdk-6u21-linux-x64-rpm.bin
./jdk-6u21-linux-x64-rpm.bin
java -version

按提示过程提示完成安装.使用java -version查看当前版本,如:

java version “1.6.0_21″
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

为了方便以后使用,建立软链接和JAVA环境变量:

ln -s /usr/java/jdk1.6.0_21 /usr/local/java

注:/usr/java/jdk1.6.0_21是当前版本安装目录。

在/etc/profile尾部加入JAVA环境变量:
vi /etc/profile

#java & jdk
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

2.安装ARP相关:

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

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

tar -zxvf apr-util-1.3.10.tar.gz
cd apr-util-1.3.10
./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr
make
make install
cd ..

二、安装tomcat,并加入APR,将tomcat加入服务启动
1.安装tomcat

tar -zxvf apache-tomcat-6.0.29.tar.gz
mv apache-tomcat-6.0.29 /usr/local/apache-tomcat
cd /usr/local/apache-tomcat/bin/
#开启
./startup.sh

开启后使用, http://IP:8080/ 查看tomcat是否已启动成功!

2.使tomcat支持APR

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

将APR库加入/etc/profile尾部环境变量,方便使用:
vi /etc/profile

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

使用以下命令查看加入是否生效:

source /etc/profile
echo $LD_LIBRARY_PATH;
#关闭TOMCAT进程,例如:
kill `ps -ef|grep “java”|grep “commons-daemon”|awk ‘{print $2}’`
#重启tomcat
/usr/local/apache-tomcat/bin/startup.sh
more /usr/local/apache-tomcat/logs/catalina.out

如果有以下信息表示加载APR成功:

2011-1-17 21:08:44 org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.

3.将tomcat加入服务启动:
tomcat6自启动程序daemon-native已改成jsvc,在目录里已集成安装包:

cd /usr/local/apache-tomcat/bin/
tar -zxvf commons-daemon-native.tar.gz
cd commons-daemon-1.0.2-native-src/unix/
./configure
make
#第一次make会有出错提示,再make一次就行了
make clean
make
cp jsvc ../../
cp native/Tomcat5.sh /etc/init.d/apache-tomcat

修改启动脚本参数:
vi /etc/init.d/apache-tomcat
在#!bin/sh下一行添加:

# chkconfig: 2345 85 15
# description: Apache tomcat6

并修改相关参数:

JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/apache-tomcat
DAEMON_HOME=$CATALINA_HOME/bin
# I did not use the user.
TOMCAT_USER=root
# for multi instances adapt those lines.
TMP_DIR=$CATALINA_HOME/tmp
PID_FILE=/var/run/jsvc_apache.pid
CATALINA_BASE=$CATALINA_HOME
CATALINA_OPTS=”-Djava.library.path=/usr/local/apr/lib”

修改$DAEMON_HOME/src/native/unix/jsvc为$DAEMON_HOME/jsvc,在start和stop两有两处

#$DAEMON_HOME/src/native/unix/jsvc
$DAEMON_HOME/jsvc

加入自动启动

groupadd tomcat
useradd -g tomcat -s /sbin/nologin -M tomcat
chmod a+x /etc/init.d/apache-tomcat
chkconfig –add apache-tomcat
chkconfig apache-tomcat on
#记得先关闭进程,再:
/etc/init.d/apache-tomcat start

访问 http://IP:8080/ 查看tomcat是否已启动成功!

三、TOMCAT优化(虚拟内存,最大进程数)
1.修改默认虚拟内存大小
1).添加tomcat管理员,方便查看内存调整
vi /usr/local/apache-tomcat/conf/tomcat-users.xml
在tomcat-users节点里添加:

<user username=”tomcat” password=”密码” roles=”manager”/>

重启jsvc后可以登陆查看
打开http://ip:8080/
点击”status”,查看JVM选项:

Free memory: 100 MB Total memory: 100 MB Max memory: 512 MB

2).修改内存大小
修改/etc/init.d/apache-tomcat,
在CATALINA_OPTS=”-Djava.library.path=/usr/local/apr/lib”下添加一行:

JAVA_OPTS=”-Xms8192m -Xmx8192m -Xmn1024m -Djava.awt.headless=true”

(注:以上设置为最大8G,最小1G)
并在 $CATALINA_OPTS \ 前添加一行:

$JAVA_OPTS \

重启jsvc,登陆status页查看内存是否已经改变。

2.修改tomcat并发连数接数和优化设置(压缩、默认编码设置):
修改:/usr/local/apache-tomcat/conf/server.xml

<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />

为:

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

重启jsvc,使他生效。
注:
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压缩类型
3.禁止文件修改后自动重新加载:
修改Context里的reloadable=”false”

四、修改TOMCAT默认首页和路径:
方法1.直接替换
在%TOMCAT_HOME%webappsROOT文件夹下,有一个index.jsp文件,将它用所需的JSP应用程序的首页替换.
然后打开%TOMCAT_HOME%webappsROOTWEB-INF文件夹下的web.xml进行修改,把其中的servlet-mapping部分注释掉。因为默认情况下,Tomcat的默认首页是由这个Servlet生成的,所以只替换index.jsp是不起作用的。

方法2.配置默认虚拟目录
在%TOMCAT_HOME%conf文件夹下打开server.xml文件,在<Host></Host>之间添加如下内容。

<Context path=”虚拟路径” docBase=”JSP应用程序的物理路径” workDir=”JSP应用程序的工作目录” debug=”0″ reloadable=”true”></Context>

例如:

<Context path=”" docBase=”D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\apply” workDir=”D:\Program Files\Apache Software Foundation\Tomcat 6.0\work\Catalina\localhost\apply” reloadable=”true”></Context>

注意:
1.如果path=”"那么只要在浏览器中键入http://localhost:8080,这时看到的就是设定的JSP应用的默认首页。否则要键入http://localhost:8080/myapp
2.这种方法也可以用于JSP应用程序的发布,但是其中的默认首页一定要为index.jsp,否则在URL中要写明默认首页名。

可以修改conf 目录下的web.xml文件。
在你应用的web.xml中加上如下信息

<welcome-file-list>
<welcome-file>这里是你要默认访问的连接</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

我的设置:

<Context path=”" debug=”0″ reloadable=”false” docBase=”/data/www/app_test” />

其它:使用NGINX结合TOMCAT做动静态分离:

server
{
 listen       80;
 charset utf-8;
 server_name  test.domain.com;
 index index.shtml index.html index.htm;
 root  /data/www/app_test;  
 #access_log  logs/access.log;
 location ~ .*\.(jsp|do)?$
 {
  proxy_cache     off;
  proxy_set_header Host  $host;
  proxy_set_header X-Forwarded-For  $remote_addr;
  proxy_pass      http://127.0.0.1:8001;
 }
 location ~* /WEB-INF/
 {
  deny all;
 }
 location ~ .*\.(class)?$
 {
  deny all;
 }
}

附启动文件全文:

#!/bin/sh
# chkconfig: 2345 85 15
# description: Apache tomcat6

# Adapt the following lines to your configuration
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/apache-tomcat
DAEMON_HOME=$CATALINA_HOME/bin
TOMCAT_USER=root

# for multi instances adapt those lines.
TMP_DIR=$CATALINA_HOME/tmp
PID_FILE=/var/run/apache-tomcat.pid
CATALINA_BASE=$CATALINA_HOME

CATALINA_OPTS=”-Djava.library.path=/usr/local/apr/lib”
JAVA_OPTS=”-Xms8192m -Xmx8192m -Xmn1024m -Djava.awt.headless=true”
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar

case “$1″ in
  start)
    #
    # Start Tomcat
    #
    $DAEMON_HOME/jsvc \
    -user $TOMCAT_USER \
    -home $JAVA_HOME \
    -Dcatalina.home=$CATALINA_HOME \
    -Dcatalina.base=$CATALINA_BASE \
    -Djava.io.tmpdir=$TMP_DIR \
    -wait 10 \
    -pidfile $PID_FILE \
    -outfile $CATALINA_HOME/logs/catalina.out \
    -errfile ‘&1′ \
    $JAVA_OPTS \
    $CATALINA_OPTS \
    -cp $CLASSPATH \
    org.apache.catalina.startup.Bootstrap
    #
    # To get a verbose JVM
    #-verbose \
    # To get a debug of jsvc.
    #-debug \
    exit $?
    ;;

  stop)
    #
    # Stop Tomcat
    #
    $DAEMON_HOME/jsvc \
    -stop \
    -pidfile $PID_FILE \
    org.apache.catalina.startup.Bootstrap
    exit $?
    ;;

  *)
    echo “Usage tomcat.sh start/stop”
    exit 1;;
esac

猜你喜欢

转载自cppmule.iteye.com/blog/1703481