湖南网站托管,湖南郴州市房价,游戏官网制作,修改wordpress logo这里写目录标题 Tomcat一.java基础1.java历史2.java组成3.实现动态网页功能serveltjsp 4.jdkJDK 和 JRE 关系安装openjdk安装oracle官方JDK 二.tomcat基础功能1.Tomcat介绍2.安装tomcat二进制安装Tomcat 3.配置文件介绍及核心组件配置文件组件 4.状态页5.常见的配置详解6.tomca… 这里写目录标题 Tomcat一.java基础1.java历史2.java组成3.实现动态网页功能serveltjsp 4.jdkJDK 和 JRE 关系安装openjdk安装oracle官方JDK 二.tomcat基础功能1.Tomcat介绍2.安装tomcat二进制安装Tomcat 3.配置文件介绍及核心组件配置文件组件 4.状态页5.常见的配置详解6.tomcat端口号7.虚拟主机配置8.context配置9.tomcat多实例 Tomcat
一.java基础
1.java历史
Sun公司第一个Java公开版本1.0发布于1996年。口号是一次编写到处运行(Write onceRun anywhere)跨平台运行。
1999年SUN公司发布了第二代Java平台(Java2)。
2009年4月20日Oracle甲骨文公司宣布将以每股9.50美元总计74亿美金收购SUN计算机系统公司。2010年1月成功收购
2.java组成
Java包含下面部分: 语言、语法规范。关键字,如: if、for、class等 源代码source code 依赖库标准库(基础).I第三方库(针对某些应用)。底层代码太难使用且开发效率低封装成现成的库 JVM虚拟机。将源代码编译为中间码即字节码后,再运行在JVM之上
由于各种操作系统ABl不一样采用编译方式需要为不同操作系统编译成相应格式的二进制程序才能运行。 1995年Java发布Applet技术Java程序在后台编译成字节码发送到浏览器端在浏览器中运行一个Applet程序这段程序是运行在另外一个VM进程中的但是这种在客户端运行ava代码的技术会有很大的安全问题。1997年CGl技术发展起来动态网页技术开始向后端开发转移在后端将动态内容组织好拼成HTML发回到浏览器端。
3.实现动态网页功能
servelt
import java.io.*;
import javax.servlet . * ;
import javax. servlet . http .*;
public class Helloword extends HttpServlet {
private string message;
public void init( )throws Serv1etException
{
message He1lo wor1d;
}
public void doGet(HttpservletRequest request,HttpServletResponse response)throws servletExceptionIOException
{
response.setContentType(text/html);//响应报文内容类型printwriter out response.getwriter(; //构建响应报文内容
out.print1n(h1 message /h1);
out.print1n(pa hrefhttp://www.hh.com哈哈/a嘿嘿/p);
}
public void destroyo{{
}
}在Servlet中最大的问题是HTML输出和java代码混在一起如果网页布局要调整Java源代码就需要随之进行调整,对于开发人员来说就是噩梦。
jsp
JSP本质是提供一个HTML模板也就是在网页中预留以后填充的空后续将Java程序运行生成的数据对HTML进行填空就可以了。如果网页布局需要调整!JAVA源代码不需要很大的调整
%page languagejava contentTypetext/htm1; charsetUTF-8pageEncodingUTF-8%
! DOCTYPE html
Ihtm1
headmeta charsetutf-8titlejsp/title/head
body
本行后面的内容是服务器端动态生成字符串最后拼接在一起
%
out. print1n(你的IP地址 request.getRemoteAddr(C);
%
/body/htm1JSP是基于Servlet实现JSP将表现和逻辑分离这样页面开发人员更好的注重页面表现力更好服务客户。
不过最终JSP还需要先转换为Servlet的源代码,java文件Tomcat中使用asper转换)只不过这个转换过程无需人工完成是通过工具自动实现的然后再编译成.class文件最后才可以在JVM中运行。 比如:浏览器第一次请求testjspi时, Tomcat服务器会自动将testisp转化sltest.spjava这么一个类并将该文件编译成cass文件。编译完毕后再运行class文件来应浏览器的请求。如果以后访问testjsp就不再重新编译jsp文件了直接调用class文件来响应浏览器。后续如果Tomcat检测到SP页面改动了的话会重新编译
JSP类似于PHP和ASP,前端代码和后端JAVA代码混写在一起需要前端和后端工程师在一起协作才能完成,无法做到真正的前后端分离开发 在web早期的开发中通常采用的分为两层视图层和模型层。
4.jdk
JDK 和 JRE 关系
Java SE APl: Java 基础类库开发接口JRE: Java Runtime Environment缩写指Java运行时环境包含JVM Java核心类库JDK: Java Development Kit即Java语言的软件开发工具包JDK协议基于JRL(JavaResearch License)协议
安装openjdk
在CentOS中可以使用 yum 仓库安装 openjdk
[rootlocalhost data]#yum list *jdk*
#查看可以安装哪些版本[rootlocalhost data]#yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel
#安装 jdk 环境[rootlocalhost data]#java -version
#查看版本
openjdk version 1.8.0_382
OpenJDK Runtime Environment (build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode)
安装oracle官方JDK
#注意需要注册登录后,才能下载JDK
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
#需要登录rpm安装
[rootlocalhost data]#yum install jdk-8u291-linux-x64.rpm -y[rootlocalhost data]#yum history info 6
安装 jdk1.8-2000:1.8.0_291-fcs.x86_64 /jdk-8u291-linux-x64[rootlocalhost data]#rpm -ql jdk1.8-2000:1.8.0_291-fcs
#查看文件列表
[rootlocalhost data]#find / -name javac
/usr/java/jdk1.8.0_291-amd64/bin/javac[rootlocalhost ~]#vim /etc/profile.d/jdk.sh
[rootlocalhost ~]#cat /etc/profile.d/jdk.sh
export JAVA_HOME/usr/java/default
export PATH$JAVA_HOME/bin:$PATH
#以下两项非必须项
export JRE_HOME$JAVA_HOME/jre
export CLASSPATH$JAVA_HOME/lib/:$JRE_HOME/lib/二进制文件安装
[rootlocalhost ~]#tar xvf jdk-8u241-linux-x64.tar.gz -C /usr/local/
[rootlocalhost~]#cd /usr/local/
#初始化环境变量
[rootlocalhost ~]#vim /etc/profile.d/jdk.sh
[rootlocalhost ~]#cat /etc/profile.d/jdk.sh
export JAVA_HOME/usr/local/jdk-8u241
export PATH$PATH:$JAVA_HOME/bin
#以下两项非必须项
#export JRE_HOME$JAVA_HOME/jre
#export CLASSPATH$JAVA_HOME/lib/:$JRE_HOME/lib/
[rootlocalhost ~]#. /etc/profile.d/jdk.sh#注意:JAVA_HOME变量必须设置,否则tomcat启动时会出下面错误
[rootlocalhost ~]#catalina.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
[rootlocalhost ~]#startup.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
#验证安装
[rootlocalhost ~]#java -version
java version 1.8.0_241
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
[rootlocalhost ~]#which java
/usr/local/jdk/bin/java二.tomcat基础功能
1.Tomcat介绍
Tomcat服务器是一个免费的开放源代码的Web应用服务器属于轻量级应用服务器在中小型系统和并发访问用户不是很多的场合下被普遍使用Tomcat具有处理HTML页面的功能它还是一个Servlet和JSP容器。
Tomcat 仅仅实现了Java EE规范中与Servlet、JSP相关的类库是JavaEE不完整实现。
2.安装tomcat
二进制安装Tomcat
CentOS 7 的yum源的tomcat版本老旧,而CentOS8 yum源里无tomcat
目前比较主流的Tomcat是8.5.X版本,推荐从Apache官网下载二进制tomcat包进行安装,此为生产常用方式
官方和镜像站点下载
https://tomcat.apache.org/download-80.cgi
https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/[rootlocalhost ~]#rpm -ivh jdk-8u201-linux-x64.rpm
#安装JDK包
警告jdk-8u201-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中... ################################# [100%]
正在升级/安装...1:jdk1.8-2000:1.8.0_201-fcs ################################# [100%]
[rootlocalhost ~]#cd /usr/java/jdk1.8.0_201-amd64/
[rootlocalhost jdk1.8.0_201-amd64]#ll
总用量 25980[rootlocalhost jdk1.8.0_201-amd64]#vim /etc/profile
#添加环境变量
export JAVA_HOME/usr/java/jdk1.8.0_201-amd64
export CLASSPATH$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH$JAVA_HOME/bin:$PATH
[rootlocalhost jdk1.8.0_201-amd64]#source /etc/profile
#刷新配置文件
[rootlocalhost tomcat]#tar zxvf apache-tomcat-9.0.16.tar.gz
[rootlocalhost tomcat]#cp -r apache-tomcat-9.0.16 /usr/local/tomcat
[rootlocalhost tomcat]#cd /usr/local/tomcat/
[rootlocalhost tomcat]#/usr/local/tomcat/bin/startup.sh
#启动tomcat #catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[rootlocalhost ~]# /usr/local/tomcat/bin/shutdown.sh
#关闭服务 #catalina.sh stop添加到
[rootlocalhost bin]#useradd -s /sbin/nologin tomcat
#新建用户
[rootlocalhost local]#chown tomcat:tomcat tomcat/ -R
#修改属主和属组[rootlocalhost ~]#cat /usr/local/systemd/system/tomcat EOF
[Unit]
DescriptionTomcat
Aftersyslog.target network.target[Service]
Typeforking
ExecStart/usr/local/tomcat/bin/startup.sh
ExecStop/usr/local/tomcat/bin/shutdown.sh
RestartSec3
PrivateTmptrue
Usertomcat
Grouptomcat[Install]
WantedBymulti-user.targetEOF[rootlocalhost local]#systemctl daemon-reload
[rootlocalhost local]#systemctl start tomcat
[rootlocalhost local]#ss -ntap |grep 8080#启动 tomcat
#后台启动
tomcat/bin/startup.sh
tomcat/bin/catalina.sh start#前台启动
tomcat/bin/catalina.sh run#关闭服务
tomcat/bin/shutdown.sh3.配置文件介绍及核心组件
配置文件
安装目录下 文件介绍
目录名字功能bin存放启动和关闭 Tomcat 的脚本文件比较常用的是 catalina.sh、startup.sh、shutdown.sh 三个文件conf存放 Tomcat 服务器的各种配置文件比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。lib存放 Tomcat 服务器的 jar 包一般不作任何改动除非连接第三方服务比如 redis那就需要添加相对应的 jar 包logs存放 Tomcat 日志temp存放 Tomcat 运行时产生的文件webapps存放项目资源的目录workTomcat 工作目录一般清除 Tomcat 缓存的时候会使用到升级版本时注意要删除里面的缓存
conf子目录
文件名说明server.xml主配置文件 全局生效web.xml每个webapp只有“部署后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置,每个web应用也可以使用专用配置文件,来覆盖全局文件context.xml用于定义所有web应用均需加载的Context配置,此文件为所有的webapps提供默认配置,每个web应用也可以使用自已专用的配置,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中,覆盖全局的文件tomcat-users.xml用户认证的账号和密码文件catalina.policy当使用security选项启动omcat时,用于为tomcat设置安全策略catalina.propertiesTomcat环境变量的配置,用于设定类加载器路径以及一些与JVM调优相关参数logging.propertiesTomcat日志系统相关的配置可以修改日志级别和日志路径等注意配置文件对于大小写敏感
组件
组件分层和分类
顶级组件
Server代表整个Tomcat容器一台主机可以启动多tomcat 实例 需要确保端口不要产生冲突
服务类组件
Service实现组织Engine和Connector建立两者之间关联关系, service 里面只能包含一个Engine
连接器组件
Connector有HTTP默认端口8080/tcp、HTTPS默认端口8443/tcp、AJP默认端口8009/tcp协议的连接器AJPApache Jserv protocol是一种基于TCP的二进制通讯协议。
容器类
Engine、Host虚拟主机、Context(上下文件,解决路径映射)都是容器类组件可以嵌入其它组件内部配置如何运行应用程序。
内嵌类
可以内嵌到其他组件内valve、logger、realm、loader、manager等。以logger举例在不同容器组件内分别定义。
集群类组件
listener、cluster
首先开启 tomcat进程 会有 server 产生
然后产生 一个 service管理组件 管理 所有其他组件的
用户发送请求httpd 请求过来
connector 连接器默认监听接收到此请求 会转交给 engine 引擎
engine 引擎 会处理请求 遍历 host 虚拟主机 会交给 客户访问的host 如果找不到交给默认的 host 会根据 上下文 context 上下文 映射关系 去找相对应的文件
找到文件后 交给 JSP 生成代码 再交给 servlet 生成 html
原路返回 反馈给用户
名称说明server服务器Tomcat运行的进程实例一个Server中可以有多个service但通常就一个service服务用来组织Engine引擎和Connector连接器端口的对应关系一个service中只有一个Engineconnector连接器负责客户端的HTTP、HTTPS、AJP等协议连接。一个Connector只属于某一个EngineEngine即引擎用来响应并处理用户请求。一个Engine上可以绑定多个ConnectorHost即虚拟主机,可以实现多虚拟主机,例如使用不同的主机头区分Context应用的上下文配置特定url路径映射和目录的映射关系: url directory
核心组件 Tomcat启动一个Server进程。可以启动多个Server即tomcat的多实例, 但一般只启动一个 创建一个Service提供服务。可以创建多个Service但一般也只创建一个 每个Service中是Engine和其连接器Connector的关联配置 可以为这个Service提供多个连接器Connector这些Connector使用了不同的协议绑定了不同的端口。其作用就是处理来自客户端的不同的连接请求或响应 Service 内部还定义了Engine引擎才是真正的处理请求的入口其内部定义多个虚拟主机Host Engine对请求头做了分析将请求发送给相应的虚拟主机如果没有匹配数据就发往Engine上的defaultHost缺省虚拟主机Engine上的缺省虚拟主机可以修改 Host 定义虚拟主机虚拟主机有name名称通过名称匹配 Context 定义应用程序单独的路径映射和配置 引擎 一般而言引擎是一个程序或一套系统的支持部分。常见的程序引擎有游戏引擎、搜索引擎、杀毒引擎等 范例多个组件关系 conf/server.xml
?xml version1.0 encodingUTF-8?
Server port8005 shutdownSHUTDOWNService nameCatalinaConnector port8080 protocolHTTP/1.1connectionTimeout20000redirectPort8443 /Connector port8009 protocolAJP/1.3 redirectPort8443 /Engine nameCatalina defaultHostlocalhostHost namelocalhost appBasewebappsunpackWARstrue autoDeploytrueContext Context //Host/Engine/Service
/Servertomcat 处理请求过程 假设来自客户的请求为: http://localhost:8080/test/index.jsp 浏览器端的请求被发送到服务端端口8080Tomcat进程监听在此端口上。通过侦听的HTTP/1.1Connector获得此请求。 Connector把该请求交给它所在的Service的Engine来处理并等待Engine的响应 Engine获得请求192.168.91.100:8080/test/index.jsp遍历它所有虚拟主机Host Engine匹配到名为localhost的Host。如果匹配不到,就把请求交给该Engine中的defaultHost处理. localhost Host获得请求/test/index.jsp匹配它所拥有的所有Context Host匹配到路径为/test的Context path/test的Context获得请求index.jsp在它的mapping table中寻找对应的servlet Context匹配到URLPATTERN为*.jsp的Sservlet对应于]spServlet类构造HtpServletRequest对象和HttpServletResponse对象作为参数调用)spSer let的doGet或doPost方法。 Context把执行完了之后的HttpServletResponse对象返回给Host Host把HttpServletResponse对象返回给Engine Engine把HttpServletResponse对象返回给Connector Connector把HttpServletResponse对象返回给浏览器端
通常意义上的 Web 服务器接受请求后只是单纯地响应静态资源如 HTML 文件图片 文件等不能在后端进行一定的处理操作。 Tomcat 是 Apache 下的一个子项目它具备 Web 服务器的所有功能不仅可以监听接受请求并响应静态资源而且可以在后端运行特定规范 的 Java 代码 Servlet同时将执行的结果以 HTML 代码的形式反回客户端。 Tomcat 由一系列的组件构成其中核心的组件有三个
1Web 容器完成 Web 服务器的功能。https请求
2Servlet 容器名字为 catalina用于处理 Servlet 代码。(具体的任务)
3JSP 容器用于将 JSP 动态网页翻译成 Servlet 代码。 ① Web容器 负责底层的HTTP协议 ② Servlet容器 由catalina脚本帮忙处理的servlet代码主要处理后端逻辑业务 catalina实际处理的是Servlet代码而Servlet代码是由Java编写的 ③ JSP容器JAVA Scripts page JSP在正常的html标签中嵌入一些java代码 这些JSP最终会被翻译成Servlet代码被执行 主要提供提供前端页面展示% %
小结tomcat就是一个容器在这个容器中有三大核心组件 WEB、Servlet 和JSP所以Tomcat是极其轻量级别的核心组件都是支持基本运行的组件
4.状态页
默认的管理页面被禁用启用方法如下
修改conf/conf/tomcat-users.xml
[rootlocalhost tomcat]#cat conf/server.xml
GlobalNamingResources!-- Editable user database that can also be used byUserDatabaseRealm to authenticate users--Resource nameUserDatabase authContainertypeorg.apache.catalina.UserDatabasedescriptionUser database that can be updated and savedfactoryorg.apache.catalina.users.MemoryUserDatabaseFactorypathnameconf/tomcat-users.xml / #由此文件指定授权用户信息/GlobalNamingResources用户认证配置文件是conf/tomcat-users.xml。打开tomcat-users.xml我们需要一个角色manager-gui
[rootlocalhost tomcat]#vim conf/tomcat-users.xml
tomcat-users xmlnshttp://tomcat.apache.org/xmlxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://tomcat.apache.org/xml tomcat-users.xsdversion1.0
#加下面两行指定用户和密码role rolenamemanager-gui/user usernameadmin password123456 rolesmanager-gui/
/tomcat-users
#修改全局配置文件需要重启服务生效
[rootlocalhost tomcat]#systemctl restart tomcat修改webapps/manager/META-INF/context.xml
?xml version1.0 encodingUTF-8?
Context antiResourceLockingfalse privilegedtrue Valve classNameorg.apache.catalina.valves.RemoteAddrValveallow127\.\d\.\d\.\d|::1|0:0:0:0:0:0:0:1 /Manager sessionAttributeValueClassNameFilterjava\.lang\.
(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreve
ntionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap/
/Context查看正则表达式就知道是本地访问了由于当前访问地址是192.168.x.x可以修改正则表达式为
allow127\.\d\.\d\.\d|::1|0:0:0:0:0:0:0:1|192\.168\.\d\.\d开启状态页但是只能本地访问
server status 状态页manger app 管理项目host manger 配置虚拟主机的设置
[rootlocalhost conf]#vim /usr/local/tomcat/conf/tomcat-users.xml
role rolenamemanager-gui/45 user usernametomcat passwordtomcat rolesmanager-gui/46 /tomcat-users开启允许远程状态页
由于是访问的http://192.168.82.100:8080/manager/status manager 这个页面所以需要manager 文件夹有权限
[rootlocalhost webapps]#vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
#添加允许的 主机地址allow127\.\d\.\d\.\d|::1|0:0:0:0:0:0:0:1|192\.\d\.\d\.\d /host manger
配置虚拟主机的设置
[rootlocalhost conf]#vim /usr/local/tomcat/conf/tomcat-users.xml
#最后一行加入可以合并用户和组
role rolenamemanager-gui/
role rolenameadmin-gui/
user usernametomcat passwordtomcat rolesmanager-gui,admin-gui/
/tomcat-users此时还只是可以本地登录不能远程登录
[rootlocalhost host-manager]#vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xmlallow127\.\d\.\d\.\d|::1|0:0:0:0:0:0:0:1|192\.\d\.\d\.\d /
5.常见的配置详解
在conf/server.xml 有以下内容
?xml version1.0 encodingUTF-8?
Server port8005 shutdownSHUTDOWNService nameCatalinaConnector port8080 protocolHTTP/1.1connectionTimeout20000redirectPort8443 /Connector port8009 protocolAJP/1.3 redirectPort8443 /Engine nameCatalina defaultHostlocalhostHost namelocalhost appBasewebappsunpackWARstrue autoDeploytrue/Host/Engine/Service
/Server8005是Tomcat的管理端口默认监听在127.0.0.1上。无需验证就可发送SHUTDOWN (大小写敏感)这个字符串tomcat接收到后就会关闭此Server。
[rootcentos7 ~]#telnet 127.0.0.1 8005
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ^].
SHUTDOWN #执行命令关闭tomcat
Connection closed by foreign host.
[rootcentos7 ~]#ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22此管理功能建议禁用可将SHUTDOWN改为一串猜不出的字符串实现或者port修改成 0,会使用随机端口如:36913
port设为-1等无效端口,将关闭此功能此行不能被注释,否则无法启动tomcat服务
范例:
Server port8005 shutdown44ba3c71d57f494992641b258b965f286.tomcat端口号
8080 默认接收 http 请求的端口
8005 安全端口可以关闭tomcat
8009 apache 和 tomcat 联动 AJP 协议
7.虚拟主机配置
可能有时候公司会有多个项目需要运行那么肯定不可能是一台服务器上运行多个 Tomcat 服务这样会消耗太多的系统资源。此时就需要使用到 Tomcat 虚拟主机。
#创建虚拟主机前,必须先创建相关目录,否则创建虚拟机不成功
[rootlocalhost ~]#mkdir /data/web{1,2,3}/ROOT/ -pv
[rootlocalhost ~]#echo web1 /data/web1/ROOT/index.html
[rootlocalhost ~]#echo web2 /data/web2/ROOT/index.html
[rootlocalhost ~]#echo web3 /data/web3/ROOT/index.html
[rootlocalhost ~]#chown -R tomcat.tomcat /data/[rootlocalhost data]#vim /usr/local/tomcat/conf/server.xml
#找到 host 主机项 注意 根目录中 一定要有 ROOT 这是默认 的主目录
#注意 默认的 结束 /HOST 这段要在 默认结束的后面加上
Host namewww.a.com appBase/data/web1unpackWARstrue autoDeploytrue/HostHost namewww.b.com appBase/data/web2unpackWARstrue autoDeploytrue/HostHost namewww.c.com appBase/data/web3unpackWARstrue autoDeploytrue/Host8.context配置
Context作用
路径映射将url映射至指定路径而非使用appBase下的物理目录实现虚拟目录功能应用独立配置例如单独配置应用日志、单独配置应用访问控制
#映射指定路径
Context path/test docBase/data/test reloadabletrue /
#映射站点的根目录
Context path/ docBase/data/website reloadabletrue /
#还可以添加日志等独立的配置
Context path/test docBase/data/test reloadabletrue Valve classNameorg.apache.catalina.valves.AccessLogValve directorylogsprefixlocalhost_test_log suffix.txtpattern%h %l %u %t quot;%rquot; %s %b /
/Context说明
path指的是访问的URL路径如果path与appBase下面的子目录同名context的docBase路径优先更高docBase可以是磁盘文件的绝对路径也可以是相对路径相对于Host的appBasereloadabletrue表示如果WEB-INF/classes或META-INF/lib目录下.class文件有改动就会将WEB应用重新加载。生产环境中建议使用false来禁用。
[rootlocalhost data]#mkdir test
[rootlocalhost data]#echo test test/index.html[rootlocalhost test]#vim /usr/local/tomcat/conf/server.xml
Host namewww.a.com appBase/data/web1unpackWARstrue autoDeploytrueContext path/test docBase/data/test reloadablefalse /#如果 访问 www.a.com/test/ 那么 就替换成/data/test/Host[rootnode2 ~]#curl www.a.com:8080/test/
test9.tomcat多实例
1.安装好 jdk
2.安装 tomcat
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mkdir /usr/local/tomcat
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat23.配置 tomcat 环境变量
vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1/usr/local/tomcat/tomcat1
export CATALINA_BASE1/usr/local/tomcat/tomcat1
export TOMCAT_HOME1/usr/local/tomcat/tomcat1#tomcat2
export CATALINA_HOME2/usr/local/tomcat/tomcat2
export CATALINA_BASE2/usr/local/tomcat/tomcat2
export TOMCAT_HOME2/usr/local/tomcat/tomcat2source /etc/profile.d/tomcat.sh4.修改 tomcat2 中的 server.xml 文件要求各 tomcat 实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
Server port8006 shutdownSHUTDOWN #22行修改Server prot默认为8005 - 修改为8006
Connector port8081 protocolHTTP/1.1 #69行修改Connector portHTTP/1.1 默认为8080 - 修改为8081
Connector port8010 protocolAJP/1.3 redirectPort8443 / #116行修改Connector port AJP/1.3默认为8009 - 修改为8010----------------------------------------------------------------------------------------------------------
第一个连接器默认监听8080端口负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时使用的就是这个连接器。
第二个连接器默认监听8009端口AJP端口即容器使用如Apache能通过AJP协议访问Tomcat的8009端口。
----------------------------------------------------------------------------------------------------------5.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
##添加以下内容
export CATALINA_BASE$CATALINA_BASE1
export CATALINA_HOME$CATALINA_HOME1
export TOMCAT_HOME$TOMCAT_HOME1vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE$CATALINA_BASE1
export CATALINA_HOME$CATALINA_HOME1
export TOMCAT_HOME$TOMCAT_HOME1vim /usr/local/tomcat/tomcat2/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE$CATALINA_BASE2
export CATALINA_HOME$CATALINA_HOME2
export TOMCAT_HOME$TOMCAT_HOME2vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE$CATALINA_BASE2
export CATALINA_HOME$CATALINA_HOME2
export TOMCAT_HOME$TOMCAT_HOME26.启动各 tomcat 中的 /bin/startup.sh
/usr/local/tomcat/tomcat1/bin/startup.sh
/usr/local/tomcat/tomcat2/bin/startup.sh netstat -natp | grep java