Tomcat概述(下)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: Tomcat概述(下)

(5)Tomcat的目录


目录 作用
bin 存放着启动和关闭tomcat的脚本
conf 存放着不同的配置文件,server.xml是主配置文件
doc 存放tomcat文档
lib/japser/common 存放tomcat运行所需要的库文件
logs 存放tomcat运行时产生的日志文件
src 存放tomcat的源代码
webapps tomcat默认的网页存放路径
work 存放jsp编译后产生的class文件



bin下的配置文件:


server.xml:Tomcat的主配置文件,包含Service、Connector、Engine、Redin、Valve、Hosts等组件的相关配置信息


web.xml:遵循Servlet规范标准的配置文,用于配置servlet,并为所有的web应用程序提供包括MIME等默认配置信息


(6)Tomcat常见日志


日志存放路径:/usr/local/tomcat/logs/


日志 作用
localhost.log 程序异常没有被捕获的时候抛出的地方,记录Tomcat异常状态**(常用)**
catalina.out 程序的输出、Tomcat的日志输出,记录所有类型的日志**(常用)**
localhost_access_log.txt Tomcat访问成功日志**(常用)**
manager.log 记录Tomcat根目录下webapps/manager项目所产生的日志
host-manager.log 记录Tomcat根目录下webapps/host-manager项目所产生的日志


20210610102658210.png

三、部署Tomcat


(1)实验环境


系统 ip地址 主机名 Tomcat版本 JDK版本
CentOS7.4 192.168.100.202 rzy apache-tomcat-8.5.16.tar.gz jdk-8u91-linux-x64.tar.gz


(2)实验目的


使客户端可以成功访问Tomcat


(3)实验步骤

******(1)先做基础配置
[root@Centos7 ~]# hostnamectl set-hostname rzy
[root@Centos7 ~]# su
[root@rzy ~]# systemctl stop firewalld
[root@rzy ~]# setenforce 0
setenforce: SELinux is disabled
[root@rzy ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt 忙
       /dev/sr0 已经挂载到 /mnt 上
******(2)上传Tomcat和JDK的压缩包,先安装JDK环境
[root@rzy ~]# ll
总用量 182152
-rw-------. 1 root root      1264 1月  12 18:27 anaconda-ks.cfg
-rw-r--r--  1 root root   5147367 5月   7 17:49 apache-tomcat-8.5.16.tar.gz
-rw-r--r--  1 root root 181367942 5月   7 17:49 jdk-8u91-linux-x64.tar.gz
[root@rzy ~]# rpm -qa | grep java      #先查看本机是否有java
[root@rzy ~]# tar xf jdk-8u91-linux-x64.tar.gz      #解压JDK包
[root@rzy ~]# mv jdk1.8.0_91/ /usr/local/java      #移动解压后目录
[root@rzy ~]# ls /usr/local/java/      #确认是否移动成功
bin        db       javafx-src.zip  lib      man          release  THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT  include  jre             LICENSE  README.html  src.zip  THIRDPARTYLICENSEREADME.txt
[root@rzy ~]# cat <<a>> /etc/profile    #往profile配置文件中修改全局变量PATH,增加JDK也就是java的根目录和bin命令目录
> export PATH=$PATH:/usr/local/java/bin:/usr/local/java
> a
[root@rzy ~]# source /etc/profile  #执行脚本,使刚才操作生效
[root@rzy ~]# echo $PATH  #查看是否成功添加路径(优化执行路径)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin:/usr/local/java
[root@rzy ~]# java -version  #查看java版本,可以成功查看说明已经成功添加java环境
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
******(3)安装完JDK后安装Tomcat
[root@rzy ~]# tar xf apache-tomcat-8.5.16.tar.gz 
[root@rzy ~]# mv apache-tomcat-8.5.16 /usr/local/tomcat
[root@rzy ~]# ls /usr/local/tomcat/
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@rzy ~]# /usr/local/tomcat/bin/startup.sh  #启动tomcat
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@rzy ~]# netstat -anpt | grep java #查看端口,发现三个监听端口,这个就是三个连接器
tcp6       0      0 :::8080                 :::*                    LISTEN      1227/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1227/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1227/java    

测试:(访问服务器的8080端口)

20210610102726532.png


(4)扩展—安装mariadb数据库配置Tomcat的manager管理界面

******(1)继续上面的步骤
[root@rzy ~]# yum -y install mariadb-server mysql #使用yum安装
。。。。。。
完毕!
[root@rzy ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@rzy ~]# systemctl start  mariadb
[root@rzy ~]# mysqladmin -u root -p password 
Enter password: 
New password: 
Confirm new password: 
[root@rzy ~]# mysql -u root -p123123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> exit
Bye
******(2)配置Tomcat的manager管理界面
[root@rzy ~]# vim /usr/local/tomcat/conf/tomcat-users.xml #末尾添加,要记得在</tomcat-users>项中添加,不然不会生效
。。。。。。
 44 <role rolename="manager-gui"/>  #添加管理页面的用户认证
 45 <user username="tomcat" password="tomcat" roles="manager-gui"/> #添加用户名和密码
 46 </tomcat-users>
。。。。。。
保存退出
[root@rzy ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml 
。。。。。。
 17 -->
 18 <Context antiResourceLocking="false" privileged="true" >
 19   <Valve className="org.apache.catalina.valves.RemoteAddrValve"
 20          allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" /> #添加所有网段都可用
 21   <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionF    ilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
 22 </Context>
。。。。。。
完毕!

先进行访问:


image.png


20210610102805973.png


现在重启tomcat


image.png


再次进行访问:

image.png

image.png


成功查看状态


(5)自定义页面

[root@rzy webapps]# mkdir -p /web/webapp/
[root@rzy webapps]# vim /web/webapp/index.jsp
<html>
  <head>
     <title>JSP TEST PAGE1 </title>
  </head>
  <body>
     <% out.println("aaaaaaaaaaaaaaaa");%>
  </body>
</html>
[root@rzy webapps]# vim /usr/local/tomcat/conf/server.xml #修改主配置文件,这里直接使用localhost,没有修改域名
。。。。。。#这里删除了注释所以是33行,不删除注释是150行
 33             unpackWARs="true" autoDeploy="true">
 34         <Context docBase="/web/webapp" path="" reloadable="false"></Context> #修改网页存放路径
 35         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
 36     
。。。。。。
保存退出

测试,验证


image.png

(6)配置Tomcat虚拟主机

******(1)继续上面的操作,先创建虚拟主机的目录
[root@rzy ~]# mkdir -p /web2/webapp/
[root@rzy ~]# cp /web/webapp/index.jsp  /web2/webapp/index.jsp
[root@rzy ~]# sed -i 's/a/b/g' /web2/webapp/index.jsp 
[root@rzy ~]# cat /web2/webapp/index.jsp 
<html>
  <hebd>
     <title>JSP TEST PAGE1 </title>
  </hebd>
  <body>
     <% out.println("bbbbbbbbbbbbbbbb");%>
  </body>
</html>
******(2)修改配置文件
[root@rzy ~]# vim /usr/local/tomcat/conf/server.xml  #以<!-- 开头 -->结尾的都是注释,可以自行删除
。。。。。。 #复制Host区域,一个Host就是一个虚拟主机,域名不同然后把两个虚拟主机的网页存放路径指向不同的路径即可
 32       <Host name="www.aaa.com"  appBase="webapps"
 33             unpackWARs="true" autoDeploy="true">  #设置自动识别war包,开启自动部署
 34         <Context docBase="/web/webapp" path="" reloadable="false"></Context> #设置网页存放路径,tomcat把web应用程序映射为root URL路径,reloadable选项建议为false
 35         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
 36                prefix="localhost_access_log" suffix=".txt"
 37                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 38       
 39       </Host>
 40       <Host name="www.bbb.com"  appBase="webapps"
 41             unpackWARs="true" autoDeploy="true">
 42         <Context docBase="/web2/webapp" path="" reloadable="false"></Context>
 43         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
 44                prefix="localhost_access_log" suffix=".txt"
 45                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 46       
 47       </Host>
。。。。。。
#保存退出
[root@rzy ~]# /usr/local/tomcat/bin/shutdown.sh  #重启tomcat
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@rzy ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

测试,修改hosts文件

20210610103024409.png

访问不同的域名,要记得加端口号,发现出现两个不同的网页


20210610103032800.png


(7)同一主机做两个实例的方法


  1. 在主配置文件中,直接把所有的Service区域复制一下,修改两个连接器的端口号不冲突即可


[root@rzy ~]# vim /usr/local/tomcat/conf/server.xml
。。。。。。
 17   <Service name="Catalina">
 18     <Connector port="8080" protocol="HTTP/1.1"  #端口号不能相同,域名和网页存放路径也不能相同
 19                connectionTimeout="20000"
 20                redirectPort="8443" />
 21     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> #8080和8009的端口
 22     <Engine name="Catalina" defaultHost="localhost">
 23       <Realm className="org.apache.catalina.realm.LockOutRealm">
 24         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
 25                resourceName="UserDatabase"/>
 26       </Realm>
 27       <Host name="www.aaa.com"  appBase="webapps"
 28             unpackWARs="true" autoDeploy="true">
 29         <Context docBase="/web/webapp" path="" reloadable="false"></Context>
 30       </Host>
 31     </Engine>
 32   </Service>
 33   <Service name="Catalina">
 34     <Connector port="8081" protocol="HTTP/1.1"   #改成8081和8010
 35                connectionTimeout="20000"
 36                redirectPort="8443" />
 37     <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
 38     <Engine name="Catalina" defaultHost="localhost">
 39       <Realm className="org.apache.catalina.realm.LockOutRealm">
 40         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
 41                resourceName="UserDatabase"/>
 42       </Realm>
 43       <Host name="www.bbb.com"  appBase="webapps"
 44             unpackWARs="true" autoDeploy="true">
 45         <Context docBase="/web2/webapp" path="" reloadable="false"></Context>
 46       </Host>
 47     </Engine>
 48   </Service>
 49 </Server>
#保存退出
[root@rzy ~]# /usr/local/tomcat/bin/shutdown.sh  #重新启动
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@rzy ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@rzy ~]# netstat -anpt | grep java  #查看端口,发现有五个端口,一个8005是关闭tomcat的端口,另外四个就是两个实例的连接器的端口
tcp6       0      0 :::8080                 :::*                    LISTEN      17004/java          
tcp6       0      0 :::8081                 :::*                    LISTEN      17004/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      17004/java          
tcp6       0      0 :::8009                 :::*                    LISTEN      17004/java          
tcp6       0      0 :::8010                 :::*                    LISTEN      17004/java    

测试 (端口要注意修改)创建实例成功

20210610103049479.png


第二种方法简单粗暴,直接装两台tomcat,路径不一样,修改端口和域名即可(略)


(8)Tomcat主机名(域名)


Tomcat在给虚拟主机配置域名之后,客户端只能访问域名,访问ip也是无法访问,这样可以防止恶意域名绑定,有的人会把自己的ip绑到某个服务器的域名,配置之后使用ip访问是无法正常访问的


20210610103104422.png

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
25天前
|
运维 Oracle Java
Tomcat详解(一)——tomcat基础知识
Tomcat详解(一)——tomcat基础知识
15 0
|
13天前
|
IDE JavaScript Java
如何配置tomcat
【4月更文挑战第15天】如何配置tomcat
17 2
|
20天前
|
运维 应用服务中间件 Linux
Tomcat详解(十一)——Tomcat管理
Tomcat详解(十一)——Tomcat管理
7 2
|
9月前
|
前端开发 Java 应用服务中间件
3.2 Tomcat基础
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。Tomcat版本:apache-tomcat-8.5.76。
46 0
|
12月前
|
Java 应用服务中间件 Maven
Tomcat - 源码构建Tomcat 8.5.55 启动
Tomcat - 源码构建Tomcat 8.5.55 启动
79 0
|
应用服务中间件
同时启动多个Tomcat如何配置
同时启动多个Tomcat如何配置
141 0
|
Java 中间件 应用服务中间件
Tomcat概述(上)
Tomcat概述(上)
141 0
Tomcat概述(上)
|
Web App开发 XML 存储
Tomcat入门
概念:Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级web服务器,支持SErvlet/JSP少量JavaEE规范 JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和,包含13项技术规范:JDBC,JNDI,EJB,RMI,JSP,Servlet,XML,JMS,Java IDL,JTS,JavaMail,JAF 官网:https://tomcat.apache.org/
|
设计模式 算法 应用服务中间件
Tomcat原理系列之五:Tomcat有哪些优秀设计
读Tomcat也有一段时间了.读源码目的不仅仅是在了解其运行的原理,还有就是借鉴其优秀设计,并应用到日常的编码中去
Tomcat原理系列之五:Tomcat有哪些优秀设计
|
Java 应用服务中间件 安全
TOMCAT概念、安装及配置说明
基础概念 JDK:java开发工具包 JRE:java运行环境(包含于JDK中) SDK:辅助开发工具 J2EE、J2SE、J2ME:java针对不同的使用提供不同的类库,分别为企业应用、标准版应用、手机版的微型开发应用。
1103 0