大兵是
一个想全能的运维

Tomcat部署及调优

今天我们来分享一下Tomcat,如今php的占有率和java的已经一下一上,所有部署一个Tomcat还是很好的。
一、环境

[root@tomcat ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@tomcat ~]# uname -r
3.10.0-327.el7.x86_64
[root@tomcat ~]# hostname -I
10.0.0.12 172.16.1.12 
[root@tomcat ~]# getenforce 
Disabled
[root@tomcat ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
 Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
 Active: inactive (dead)
[root@tomcat tomcat]# grep "processor" /proc/cpuinfo  #因为小猫比较吃资源,所以我这里使用2核4G
processor : 0
processor : 1
[root@tomcat tomcat]# free -h
 total used free shared buff/cache available
Mem: 3.8G 295M 2.7G 8.6M 828M 3.3G
Swap: 1.0G 0B 1.0G

二、准备及目录

需要的软件。我在这里为大家准备了,jdk和Tomcat。链接:http://pan.baidu.com/s/1eS87B4e 密码:shpa。大家可以使用百度云下载。
我这里软件安装的目录是/application/,软件包存放的位置是/application/tools。
[root@tomcat tools]# rz
[root@tomcat tools]# ll
total 185908
-rw-r--r-- 1 root root 9128610 Mar 6 14:14 apache-tomcat-8.0.27.tar.gz
-rw-r--r-- 1 root root 181238643 Mar 6 14:14 jdk-8u60-linux-x64.tar.gz

三、部署java环境

[root@tomcat tools]# tar xf jdk-8u60-linux-x64.tar.gz -C /application/
[root@tomcat tools]# ln -s /application/jdk1.8.0_60/ /application/jdk
[root@tomcat tools]# ll /application/
total 4
lrwxrwxrwx 1 root root 25 Mar 15 13:00 jdk -> /application/jdk1.8.0_60/
drwxr-xr-x 8 10 143 4096 Aug 5 2015 jdk1.8.0_60
drwxr-xr-x 2 root root 72 Mar 15 12:53 tools
[root@tomcat tools]# sed -i.ori '$a export JAVA_HOME=/application/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
[root@tomcat tools]# . /etc/profile
[root@tomcat tools]# java -version #部署成功
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

四、安装Tomcat

[root@tomcat tools]# tar xf apache-tomcat-8.0.27.tar.gz -C /application/
[root@tomcat tools]# ln -s /application/apache-tomcat-8.0.27/ /application/tomcat
[root@tomcat tools]# echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
[root@tomcat tools]# source /etc/profile
[root@tomcat tools]# ll /application/
total 4
drwxr-xr-x 9 root root 149 Mar 15 13:04 apache-tomcat-8.0.27
lrwxrwxrwx 1 root root 25 Mar 15 13:00 jdk -> /application/jdk1.8.0_60/
drwxr-xr-x 8 10 143 4096 Aug 5 2015 jdk1.8.0_60
lrwxrwxrwx 1 root root 34 Mar 15 13:04 tomcat -> /application/apache-tomcat-8.0.27/
drwxr-xr-x 2 root root 72 Mar 15 12:53 tools
[root@tomcat tools]# chown root.root /application/jdk/ /application/tomcat/
[root@tomcat tools]# tail -4 /etc/profile
export JAVA_HOME=/application/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/application/tomcat

五、启动tomcat

[root@tomcat tomcat]# /application/tomcat/bin/startup.sh 
Using CATALINA_BASE: /application/tomcat
Using CATALINA_HOME: /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat tomcat]# ss -lntp
State Recv-Q Send-Q Local Address:Port Peer Address:Port 
LISTEN 0 128 *:22 *:* users:(("sshd",pid=1193,fd=3))
LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1290,fd=13))
LISTEN 0 100 :::8009 :::* users:(("java",pid=1558,fd=51))
LISTEN 0 100 :::8080 :::* users:(("java",pid=1558,fd=46))
LISTEN 0 128 :::22 :::* users:(("sshd",pid=1193,fd=4))
LISTEN 0 100 ::1:25 :::* users:(("master",pid=1290,fd=14))
LISTEN 0 1 ::ffff:127.0.0.1:8005 :::* users:(("java",pid=1558,fd=75))
[root@tomcat tomcat]# tail /application/tomcat/logs/catalina.out  #日志文件,已成功启动。
15-Mar-2017 13:08:01.748 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/docs has finished in 18 ms
15-Mar-2017 13:08:01.749 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/examples
15-Mar-2017 13:08:02.131 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/examples has finished in 382 ms
15-Mar-2017 13:08:02.131 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/host-manager
15-Mar-2017 13:08:02.159 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/host-manager has finished in 28 ms
15-Mar-2017 13:08:02.159 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/manager
15-Mar-2017 13:08:02.186 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/manager has finished in 27 ms
15-Mar-2017 13:08:02.196 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
15-Mar-2017 13:08:02.207 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
15-Mar-2017 13:08:02.219 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 36265 ms
[root@tomcat tomcat]# ps -ef|grep java 
root 1558 1 2 13:07 pts/1 00:00:07 /application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/application/tomcat/endorsed -classpath /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat -Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrap start

访问网站。 

images 

六、配置详解

[root@tomcat tomcat]# ll /application/tomcat/conf/server.xml #配置文件
-rw------- 1 root root 6458 Sep 28 2015 /application/tomcat/conf/server.xml
[root@tomcat tomcat]# cat /application/tomcat/conf/server.xml  #挑出一些说明
<?xml version='1.0' encoding='utf-8'?> 
<Server port="8005" shutdown="SHUTDOWN">
 <!-- 元素代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个<Service>元素.并且它不能做为任何元素的子元素。 -->
 <!-- port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令。 -->
 <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
 <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
 <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
 <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
 <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

 <Service name="Catalina">
 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> #注释掉
 <!--
 connector:接收用户请求,类似于httpd的listen配置监听端口.
 port指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。
 address:指定连接器监听的地址,默认为所有地址(即0.0.0.0)
 protocol连接器使用的协议,支持HTTP和AJP。AJP(Apache Jserv Protocol)专用于tomcat与apache建立通信的, 在httpd反向代理用户请求至tomcat时使用(可见Nginx反向代理时不可用AJP协议)。
 minProcessors服务器启动时创建的处理请求的线程数
 maxProcessors最大可以创建的处理请求的线程数
 enableLookups如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
 redirectPort指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
 acceptCount指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
 connectionTimeout指定超时的时间数(以毫秒为单位)
 -->
 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
 <!--
 host表示一个虚拟主机
 name指定主机名
 appBase应用程序基本目录,即存放应用程序的目录.一般为appBase="webapps" ,相对于CATALINA_HOME而言的,也可以写绝对路径。
 unpackWARs如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
 autoDeploy:在tomcat启动时,是否自动部署。
 xmlValidation:是否启动xml的校验功能,一般xmlValidation="false"。
 xmlNamespaceAware:检测名称空间,一般xmlNamespaceAware="false"。
 -->
 <Context path="" docBase="" debug=""/>
 <!-- Context表示一个web应用程序,通常为WAR文件 docBase应用程序的路径或者是WAR文件存放的路径,也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径。 path表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/**** reloadable这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重启tomcat的情况下改变应用程序 -->
</Server>

七、布置web站点

[root@tomcat tomcat]# ll /application/tomcat/webapps/ROOT/
#将程序打包刚在这里目录即可,或者通过配置文件设置appBase="your_directory"

八、tomcat多实例

[root@tomcat application]# mkdir -p /usr/www/html #web站点目录
[root@tomcat html]# cd /usr/www/html/
[root@tomcat html]# unzip jpress-web-newest.zip  #我这里为大家准备了wordpress的java版本,上传解压链接:http://pan.baidu.com/s/1skDuJgh 密码:f9b3
[root@tomcat tomcat]# cd /application/
[root@tomcat application]# cp -a apache-tomcat-8.0.27/ tomcat1
[root@tomcat application]# cp -a apache-tomcat-8.0.27/ tomcat2
[root@tomcat application]# mkdir -p /usr/www/html #web站点目录
[root@tomcat application]# sed -i '22s#8005#8011#;69s#8080#8081#;123s#appBase=".*"# appBase="/usr/www/html"#;s#<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />#<!-- Connector port="8009" protocol="AJP/1.3" redirectPort="8443" / -->#' /application/tomcat1/conf/server.xml
[root@tomcat application]# sed -i '22s#8005#8012#;69s#8080#8082#;123s#appBase=".*"# appBase="/usr/www/html"#;s#<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />#<!-- Connector port="8009" protocol="AJP/1.3" redirectPort="8443" / -->#' /application/tomcat2/conf/server.xml
[root@tomcat application]# netstat -lntp|grep java
tcp6 0 0 127.0.0.1:8011 :::* LISTEN 15584/java 
tcp6 0 0 127.0.0.1:8012 :::* LISTEN 15612/java 
tcp6 0 0 :::8081 :::* LISTEN 15584/java 
tcp6 0 0 :::8082 :::* LISTEN 15612/java 

访问站点:
http://10.0.0.12:8081/jpress-web-newest/install

http://10.0.0.12:8082/jpress-web-newest/install

images 

九、优化 

  安全优化:降权启动、telnet管理端口保护、ajp连接端口保护、禁用管理段。 

  性能优化:
屏蔽DNS查询:配置文件中设置enableLookups=”false”。 

  内存:

[root@tomcat application]# vim /application/tomcat1/bin/catalina.sh #在开始加这行 
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms2048m -Xmx2048m -XX:NewSize=1024m -XX:MaxNewSize
=1024m"

images

打赏

未经允许不得转载: » Tomcat部署及调优

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)