Tomcat作为一个高性能web容器,需要jdk支持  我们接下来在linux下部署配置tomcat。


1,安装与配置Tomcat,首先配置jdk环境。配置jdk  查看系统是否安装java环境:

[root@centos1 ~]# 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环境

[root@centos1 ~]# yum remove  java -y


3,同步一下时间:

[root@centos1 ~]# 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, 测试是否成功

[root@centos1 ~]# 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,接下来配置一个虚拟主机。 打开:[root@centos1 ~]# 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>


wKiom1jnS2bw1aN5AAA4ei35Kaw825.png-wh_50

把默认8080端口改成80,保存退出


13,创建目录文件进行测试

[root@centos1 ~]# mkdir  -pv /test/app

编辑:[root@centos1 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

wKiom1jnTKvDlxIaAAAEFuRzKYs705.png-wh_50

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

[root@centos1 ~]# 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,替换Connector内容如下:


<Connector port="8080"
       protocol="org.apache.coyote.http11.Http11AprProtocol"
       executor="tomcatThreadPool"
       compression="on"
       compressionMinSize="2048"
       maxThreads="30000"        最大线程数,决定了服务器响应客户端的请求的数
       minSpareThreads="512"     初始化时创建的线程数
       maxSpareThreads="2048" 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
       enableLookups="false" 禁用反向dns查询
       redirectPort="8443"
  acceptCount="35000" 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
       debug="0"
       connectionTimeout="40000" 连接超时时长
       disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

 

wKioL1jq7XiA5gApAAAZnsImmPY687.png-wh_50


22,启动tomcat看日志

[root@centos4 ~]# cat /usr/local/tomcat/logs/catalina.out  | grep library

INFO: Loaded APR based Apache Tomcat Native library 1.1.30 using APR version 1.3.9.

说明已经支持APR模式运行了。


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 生效