tomcat的搭建和介绍

Posted HXX❥(^_-)LYX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat的搭建和介绍相关的知识,希望对你有一定的参考价值。

第19章 tomcat的搭建

19.1 tomcat学习之前的预备知识

19.1.1 什么是JVMJDK,JRE

  • JVM            java虚拟机,实现一份代码可以在不同的平台执行,具有可移植性,jvm只关注java虚拟机的情况
  • JDK                java开发环境
  • JRE                java运行环境

19.2 tomcat的服务部署

19.2.1 tomcat服务的配置

[root@web01 webapps] # cd /server/tools/

[root@web01 tools] # tar xf apache-tomcat-8.0.27.tar.gz -C /application

[root@web01 application] # ln -s /application/apache-tomcat-8.0.27/ /application/tomcat

 

[root@web01 application] # cd /server/tools/

[root@web01 tools] # tar xf jdk-8u60-linux-x64.tar.gz -C /application/

[root@web01 application] # ln -s jdk1.8.0_60/ /application/jdk

 

cat >>/etc/profile<<\'EOF\'

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_HOM

E/lib/tools.jar

export TOMCAT_HOME=/application/tomcat

EOF

19.2.2 tomcat版本的选择

[root@web01 ipv4] # 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)

You have new mail in /var/spool/mail/root

[root@web01 ipv4] #

19.2.3 jvm版本的选择

[root@web01 ipv4] # /application/tomcat/bin/version.sh            查看tomcatjdk的版本是不是一致的

Server number: 8.0.27.0

OS Name: Linux

OS Version: 3.10.0-1062.1.1.el7.x86_64

Architecture: amd64

JVM Version: 1.8.0_60-b27

19.3 tomcat服务的启动

19.3.1 启动命令

[root@web01 ipv4] # /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.

You have new mail in /var/spool/mail/root

[root@web01 ipv4] #

 

[root@web01 tomcat] # ps -ef | grep java

root 12462 1 96 19:50 pts/2 00:00:02 /application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.0.7 -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

root 12480 8056 0 19:50 pts/2 00:00:00 grep --color=auto java

 

[root@web01 tomcat] # ss -lnptu | grep java

tcp LISTEN 0 100 :::8009 :::*

tcp LISTEN 0 100 :::8080 :::* users:(("java",pid=12462,fd=50))

[root@web01 tomcat] #

 

19.3.2 关闭命令

[root@web01 ipv4] # /application/tomcat/bin/shutdown.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

[root@web01 ipv4] #

 

[root@web01 tomcat] # ps -ef | grep java

root 12451 8056 0 19:50 pts/2 00:00:00 grep --color=auto java

[root@web01 tomcat] # ss -lnptu | grep java

[root@web01 tomcat] #

19.3.3 核心命令

[root@web01 ipv4] # /application/tomcat/bin/catalina.sh                表示tomcat启动还是关闭都会调用这个命令

19.4 tomcat的目录介绍

19.4.1 conf目录介绍

19.4.1.1 server.xml

主配置文件

22 <Server port="8005" shutdown="SHUTDOWN">            tomcatshutdown端口,连接tomcat的时                                                ,连接这个端口,并且输入暗号tomcat就会断开

41 <Resource name="UserDatabase" auth="Container"        用户管理端,认证模式,用户密码模式(这个默认是开启的,在生产环境上一定要关闭)

42 type="org.apache.catalina.UserDatabase"

43 description="User database that can be updated and saved"

44 factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

45 pathname="conf/tomcat-users.xml" />

46 </GlobalNamingResources>

69 <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"        表示tomcatweb管理端口(登录web的时候使用的就是这个端口)

94 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />            apachetomcat连接的时候预留的端口(如果不是tomcat建议将这行注释掉)

 

126 <Host name="localhost" appBase="webapps"            定义tomcat的域名和站点目录

127 unpackWARs="true" autoDeploy="true">    定义上传到站点目录的war包是不是自动解压

138 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs

"

139 prefix="localhost_access_log" suffix=".txt"            访问日志的前缀和后缀

140 pattern="%h %l %u %t &quot;%r&quot; %s %b" />

19.4.1.2 tomcat-users.xml

tomcat管理配置文件

19.4.1.3 web.xml

tomcat的额外功能

19.4.2 bin目录介绍

19.4.2.1 shutdown.sh

关闭tomcat程序

19.4.2.2 startup.sh

开启tomcat程序

19.4.2.3 Catalina.sh

  • tomcat的核心脚本,shutdown.sh和startup.sh都会调用这个核心脚本.
  • java远程管理配置
  • 配置jvm的参数信息

19.4.2.4 version.sh

查看tomcat和jdk的版本是不是可以兼容

19.4.3 webapps目录介绍

java程序的站点目录

  • 注意:java站点目录想要获取首页文件,不能讲信息放入到webapps下面就可以访问,需要在加入你下面的具体目录,默认是ROOT

19.4.3.1 db.protifies(记录和数据库进行连接的一些信息)

[root@web01 bin] # cd /application/tomcat/webapps/jpress/WEB-INF/classes/

You have new mail in /var/spool/mail/root

[root@web01 classes] # ll

total 36

-rw-r--r-- 1 root root 163 Dec 17 09:42 db.properties

19.4.4 logs目录介绍

19.4.4.1 catalina.2019-12-17.log

Catalina的日志切割

 

19.4.4.2 catalina.out

记录tomcat最详细的信息(查看error和start)

  • 注意,日志切割以后是不会自己清零,重新记录的,需要自己手动清空里面的日志
19.4.4.2.1 为什么日志不可以删除,需要清空数据来处理了

因为对于日志文件来说,完全删除一个文件是要具备2个条件的

  1. 日志必须的硬链接数为0
  2. 关联的日志进程数为0(lsof| grep delete),如果关联进程数为0,就算你删除文件,由于他还是指向的日志的inode,所以日志不会释放空间

19.4.4.3 access_log.2019-12-16.txt

tomcat的访问日志

 

 

19.5 tomcat的管理端的配置

19.5.1 注意事项

  • tomcat管理端的配置在测试和调试阶段可以打开进行使用
  • tomcat管理端在正式环境关闭(以免黑客的攻击)

19.5.2 配置的路径

19.5.2.1 配置路径并且将信息填写好

[root@web01 ~] # cd /application/tomcat/conf/

[root@web01 conf] # vim tomcat-users.xml

<?xml version=\'1.0\' encoding=\'utf-8\'?>

 

<tomcat-users xmlns="http://tomcat.apache.org/xml"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"

version="1.0">

<role rolename="admin-gui"/>                配置server status

<role rolename="manager-gui"/>            配置Manage app

<role rolename="host-gui"/>                配置HostManage

<user username="tomcat" password="tomcat" roles="admin-gui,manager-gui,host-gui"/>

</tomcat-users>

[root@web01 conf] #

19.5.2.2 tomcat服务关闭并且启动

[root@web01 conf] # /application/tomcat/bin/shutdown.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

You have new mail in /var/spool/mail/root

[root@web01 conf] # /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@web01 conf] #

19.5.2.3 web网站查看结果

19.6 tomcat的部署及应用方式

19.6.1 tomcat安装成功

采用编译的方法安装,这里就不详细说了

19.6.2 上传网站代码(jpress)

将jpress代码安装包放入到webapps目录下

19.6.3 配置数据库信息

19.6.3.1 安装mariadb数据库

[root@db ~] # yum -y install mariadb-server mariadb

19.6.3.2 创建tomcat所使用的数据库

MariaDB [(none)]> create database jpress charset utf8;

19.6.3.3 查看创建的数据库信息

MariaDB [(none)]> show create database jpress;

+----------+-----------------------------------------------------------------+

| Database | Create Database |

+----------+-----------------------------------------------------------------+

| jpress | CREATE DATABASE `jpress` /*!40100 DEFAULT CHARACTER SET utf8 */ |

+----------+-----------------------------------------------------------------+

1 row in set (0.01 sec)

 

19.6.3.4 创建jpress用户

MariaDB [(none)]> grant all on jpress.* to \'jpress\'@\'172.16.1.%\' identified by \'jpress\';

19.6.3.5 启动maridab数据库

[root@db ~] # systemctl restart mariadb.service

19.6.4 启动tomcat

[root@web01 conf] # /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.

You have new mail in /var/spool/mail/root

[root@web01 conf] #

19.6.5 web网站登录

19.6.6 实现tomcat二进制安装开机自启

[root@web01 webapps] # vim /etc/rc.local

source /etc/profile

/application/tomcat/bin/startup.sh

 

 

 

19.7 tomcat常见的3种工作模式介绍

19.7.1 tomcat3种模式比较

模式

应用版本

核心点

特点

bio(blocking io)

tomcat7及以前的

同步模式,容易阻塞

一个线程处理一个请求,在并发量高的时候,容易造成线程数多,导致资源的浪费

nio(new io)

tomcat8

异步模式,不容易阻塞

nio1(默认使用),nio2可以少量线程处理大量请求

apr(Apache

Portable

Runtime)

tomcat8

异步模式的

高并发的情况下使用

19.7.2 配置不同的工作模式

69 <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"

69 <Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"

69 <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

19.8 tomcat多实例介绍

19.8.1 什么是tomcat多实例,为什么要创建tomcat多实例

  • 可以在1台服务器上面可以运行多个tomcat

 

19.8.2 创建多实例的时候要注意的事项

  • 端口不同
  • 路径不同

19.8.3 多实例的创建

19.8.3.1 解压tomcat包,并且移到/application目录下,并且创建软连接

[root@web01 tools]# tar xf apache-tomcat-8.0.27.tar.gz                解压tomcat

[root@web01 tools]# cp -r apache-tomcat-8.0.27 tomcat8081             讲解压的包进行复制,并且修改名称

[root@web01 tools]# cp -r apache-tomcat-8.0.27 tomcat8082            将解压的包进行复制,并且修改名称

[root@web01 tools]# mv tomcat808* /application/                    移动到/application目录下

[root@web01 tools]# ll /application/

drwxr-xr-x 9 root root 160 Dec 16 12:01 apache-tomcat-8.0.27

lrwxrwxrwx 1 root root  25 Dec 16 11:52 jdk ->/application/jdk1.8.0_60/

drwxr-xr-x 8  10  143 255 Aug  5  2015 jdk1.8.0_60

drwxr-xr-x 6 root root  54 Nov  5 19:03 nginx-1.16.1

lrwxrwxrwx 1 root root  34 Dec 16 12:01 tomcat ->/application/apache-tomcat-8.0.27/

drwxr-xr-x 9 root root 160 Dec 17 11:10 tomcat8081

drwxr-xr-x 9 root root 160 Dec 17 11:10 tomcat8082

[root@web01 application]# sed -i \'s#8080#8081#g\'            tomcat8081的网站web端口改为8081

tomcat8081/conf/server.xml

[root@web01 application]# sed -i \'s#8005#8006#g\'            将关闭tomcat进程端口8005改为8006

tomcat8081/conf/server.xml

[root@web01 application]# sed -i \'s#8009#8010#g\'            apachetomcat连接的端口8009改为8010

tomcat8081/conf/server.xml

[root@web01 application]#

[root@web01 application]#

[root@web01 application]# sed -i \'s#8080#8082#g\'            tomcat8080的网站web端口改为8082

tomcat8082/conf/server.xml

[root@web01 application]# sed -i \'s#8005#8007#g\'            将关闭tomcat进程端口8005改为8007

tomcat8082/conf/server.xml

[root@web01 application]# sed -i \'s#8009#8011#g\'            apachetomcat连接的端口8009改为8011

tomcat8082/conf/server.xml

19.8.3.2 启动tomcat8081tomcat8082服务

[root@web01 ~] # /application/tomcat8081/bin/startup.sh             启动8081tomcat服务

Using CATALINA_BASE: /application/tomcat8081

Using CATALINA_HOME: /application/tomcat8081

Using CATALINA_TMPDIR: /application/tomcat8081/temp

Using JRE_HOME: /application/jdk

Using CLASSPATH: /application/tomcat8081/bin/bootstrap.jar:/application/tomcat8081/bin/tomcat-juli.jar

Tomcat started.

You have new mail in /var/spool/mail/root

[root@web01 ~] # /application/tomcat8082/bin/startup.sh             启动8082tomcat服务

Using CATALINA_BASE: /application/tomcat8082

Using CATALINA_HOME: /application/tomcat8082

Using CATALINA_TMPDIR: /application/tomcat8082/temp

Using JRE_HOME: /application/jdk

Using CLASSPATH: /application/tomcat8082/bin/bootstrap.jar:/application/tomcat8082/bin/tomcat-juli.jar

Tomcat started.

[root@web01 ~] #

19.8.3.3 查看tomcat启动的端口和进程信息

[root@web01 ~] # ss -lnptu | grep java

tcp LISTEN 0 50 :::12345 :::* users:(("java",pid=11734,fd=20))

tcp LISTEN 0 1 ::ffff:127.0.0.1:8005 :::* users:(("java",pid=11734,fd=68))

tcp LISTEN 0 1 ::ffff:127.0.0.1:8006 :::* users:(("java",pid=11653,fd=64))

tcp LISTEN 0 1 ::ffff:127.0.0.1:8007 :::* users:(("java",pid=11675,fd=64))

tcp LISTEN 0 100 :::8009 :::* users:(("java",pid=11734,fd=51))

tcp LISTEN 0 100 :::8010 :::* users:(("java",pid=11653,fd=47))

tcp LISTEN 0 100 :::8011 :::* users:(("java",pid=11675,fd=47))

tcp LISTEN 0 100 :::8080 :::* users:(("java",pid=11734,fd=50))

tcp LISTEN 0 100 :::8081 :::* users:(("java",pid=11653,fd=46))

tcp LISTEN 0 100 :::8082 :::* users:(("java",pid=11675,fd=46))

tcp LISTEN 0 50 :::34294 :::* users:(("java",pid=11734,fd=21))

tcp LISTEN 0 50 :::39958 :::* users:(("java",pid=11734,fd=19))

[root@web01 ~] # ps -ef | grep java

root 11653 1 3 19:51 pts/0 00:00:04 /application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat8081/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/application/tomcat8081/endorsed -classpath /application/tomcat8081/bin/bootstrap.jar:/application/tomcat8081/bin/tomcat-juli.jar -Dcatalina.base=/application/tomcat8081 -Dcatalina.home=/application/tomcat8081 -Djava.io.tmpdir=/application/tomcat8081/temp org.apache.catalina.startup.Bootstrap start

root 11675 1 3 19:51 pts/0 00:00:04 /application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat8082/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/application/tomcat8082/endorsed -

以上是关于tomcat的搭建和介绍的主要内容,如果未能解决你的问题,请参考以下文章

开发人员学Linux:CentOS7编译安装Nginx并搭建Tomcat负载均衡环境

环境搭建-Tomcat-Windows

使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

Tomcat平台搭建

Redis3.2+Tomcat实现集群的Session管理 -- tomcat-redis-session-manager的编译和开发部署环境搭建

Nginx+Tomcat搭建集群环境