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-zxvfjdk1.7.0_45.tar.gz
5,配置环境变量
vi/etc/profile#在文件最后加上以下配置 #jdkevn JAVA_HOME=/usr/local/jdk1.7.0_45 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar exportJAVA_HOME exportPATH exportCLASSPATH#保存退出后执行下面的命令,使其生效 source/etc/profile
6,验证jdk是否安装成功
java-versionjavaversion"1.7.0_45" Java(TM)SERuntimeEnvironment(build1.7.0_45-b18)JavaHotSpot(TM)64-BitServerVM(build24.45-b08,mixedmode)
7,安装tomcat 解压tomcat压缩包
cd/usr/local/ tar-zxvfapache-tomcat-7.0.61.tar.gz #解压成功后得到apache-tomcat-7.0.61文件夹,更名为tomcat7 mvapache-tomcat-7.0.61tomcat7
8,配置环境变量
vi/etc/profile#在文件最后加上以下配置 #tomcatevn CATALINA_HOME=/usr/local/tomcat7exportCATALINA_HOME#保存退出后执行下面的命令,使其生效 source/etc/profile
9,配置tomcat bin下的catalina.sh文件
#进入tomcat的bin目录 cd$CATALINA_HOME/bin vicatalina.sh#找到#OSspecificsupport,然后在这行下面添加以下配置 #OSspecificsupport.$var_must_besettoeithertrueorfalse. CATALINA_HOME=/usr/local/tomcat7 JAVA_HOME=/usr/local/jdk1.7.0_45#保存退出
10,配置tomcat服务
cd$CATALINA_HOME/bin cpcatalina.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>
把默认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
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" />
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,优化网络参数
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 生效