Tomcat作为一个高性能web容器,需要jdk支持 我们接下来在linux下部署配置tomcat。
1,安装与配置Tomcat,首先配置jdk环境。配置jdk 查看系统是否安装java环境:
[[email protected] ~]# java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
2,有的话我们将其卸载默认java环境
[[email protected] ~]# yum remove java -y
3,同步一下时间:
[[email protected] ~]# ntpdate 202.120.2.101
7 Apr 14:41:25 ntpdate[2603]: adjust time server 202.120.2.101 offset -0.220100 sec
4,解压jdk压缩包
cd /usr/local/ tar -zxvf jdk1.7.0_45.tar.gz
5,配置环境变量
vi /etc/profile # 在文件最后加上以下配置 # jdk evn JAVA_HOME=/usr/local/jdk1.7.0_45 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH #保存退出后执行下面的命令,使其生效 source /etc/profile
6,验证jdk是否安装成功
java -version java version "1.7.0_45" Java(TM) SE Runtime Environment (build 1.7.0_45-b18) Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
7,安装tomcat 解压tomcat压缩包
cd /usr/local/ tar -zxvf apache-tomcat-7.0.61.tar.gz # 解压成功后得到 apache-tomcat-7.0.61 文件夹,更名为tomcat7 mv apache-tomcat-7.0.61 tomcat7
8,配置环境变量
vi /etc/profile #在文件最后加上以下配置 #tomcat evn CATALINA_HOME=/usr/local/tomcat7 export CATALINA_HOME #保存退出后执行下面的命令,使其生效 source /etc/profile
9,配置tomcat bin下的catalina.sh文件
#进入tomcat的bin目录 cd $CATALINA_HOME/bin vi catalina.sh #找到 # OS specific support,然后在这行下面添加以下配置 # OS specific support. $var _must_ be set to either true or false. CATALINA_HOME=/usr/local/tomcat7 JAVA_HOME=/usr/local/jdk1.7.0_45 #保存退出
10,配置tomcat服务
cd $CATALINA_HOME/bin cp catalina.sh /etc/init.d/tomcat
11, 测试是否成功
[[email protected] ~]# service tomcat stop
Using CATALINA_BASE: /usr/local/tomcat7
Using CATALINA_HOME: /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME: /usr/local/jdk1.8.0_111
Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
(注 tomcat安装完毕)
12,接下来配置一个虚拟主机。 打开:[[email protected] ~]# vim /usr/local/tomcat7/conf/server.xml
在文件最后加上定义虚拟主机:
<Host name="www.test.com" appBase="/test/app"
unpackWARs="false" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="./" debug="0" reloadable="true" crossContext="true"/>
</Host>
把默认8080端口改成80,保存退出
13,创建目录文件进行测试
[[email protected] ~]# mkdir -pv /test/app
编辑:[[email protected] app]# vim /test/app/index.jsp
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>
</center>
</body>
</html>
14,关闭重启服务,
service tomcat stop
service tomcat start
15,进行访问测试:curl -x localhost:80 www.test.com
16.接下来配置tocmat的的优化并发。
jvm 调优 以下是1G物理内存的配置,打开; vim /usr/local/tomcat7/bin/catalina.sh
JAVA_OPTS="-server -Xms512M -Xmx512M -Xss256K"
-server: 一定要作为第一个参数,在多个CPU时性能佳
-Xms: 初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx: java heap最大值,使用的最大内存
Xms 与 Xmx 两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-Xss: 每个线程的Stack大小
17,32G物理内存配置
JAVA_OPTS="-server -Xms20480m -Xmx20480m -Xss1024K"
18.Tomcat 运行模式有三种,分别是。bio nio apr 生产环境建议使用apr,大幅度提高性能。
安装apr以及 tomcat-native
[[email protected] ~]# yum -y install apr apr-devel
19,进入tomcat/bin目录 cd /usr/local/tomcat7/bin/
tar xzfv tomcat-native.tar.gz
cd tomcat-native-1.1.32-src/jni/native/
./configure --with-apr=/usr/bin/apr-1-config
make && make install
安装成功提示如下信息;
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apr/lib
20,安装成功还需要对tomcat设置环境变量。在catalina.sh文件中增加一行:
CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
21,修改8080端口对应的
CATALINA_OPTS="org.apache.coyote.http11.Http11AprProtocol"
22,启动tomcat之后查看日志,有以下信息就是apr模式运行了。
[[email protected] logs]# cat catalina.out | grep true
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
23,优化Tomcat参数
打开vim /usr/locar/tomcat7/conf/server.xml
port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000" 链接超时时长
edirectPort="8443"
maxThreads="500" 设定处理客户请求的线程的最大数,决定了服务器可以同时响应客户请求的数,默认200
minSpareThreads="20" 初始化线程数,最小空闲线程数,默认为10
acceptCount="1000" 当所有可以使用的处理请求的线程数都被使用时,可以被放到处理队列中请求数,请求数超过这个数的请求将不予处理,默认100
enableLookups="false"
URIEncoding="UTF-8"/>
24,优化网络参数
修改/etc/sysctl.conf 末尾增加以下内容
kernel.shmall = 4294967296
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 65536
25,保存退出,执行sysctl -p 生效