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
(责任编辑:IT) |