| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 拆解Tomcat10: (七) 一套Tomcat程序中可以部署多个Server吗 -> 正文阅读 |
|
[Java知识库]拆解Tomcat10: (七) 一套Tomcat程序中可以部署多个Server吗 |
系列文章目录拆解Tomcat10: (一) 如何快速的学习一门新的语言 文章目录前言前面的文章中,一个Tomcat下只有一个Server组件,那么会有多个的情况吗? 我们平时部署Tomcat一般都是在官网下载对应的安装程序或者绿色应用包,然后把对应的Web应用放置到webapp目录。当然对应的配置可以修改Server.xml文件。如果想在一台服务器上部署这样多套应用怎么办,也就是想部署多套Webapp、多个Server.xml、多个log文件管理…,当然你可以说,像部署一个一样部署多套就行了,监听多个不同的端口。这样是可以的,但如果需要升级Tomcat,那么就需要对每一套Tomcat进行升级,比较麻烦。是否可以一套Tomcat程序部署多套应用呢?这里涉及到了两个重要变量:CATALINA_BASE和CATALINA_HOME。 一、 下载Tomcat程序官网下载地址:https://tomcat.apache.org/download-10.cgi,下载zip压缩包即可,如下图 (图一) 二、Tomcat目录结构解析解压后的文件内容如下图: (图二) 如上图二,将这些文件夹和文件大体可以按标识颜色分为三部分:
1. ①bin目录内容如下图: (图三) 如图其他软件的惯例,bin目录一般用于存放可执行文件。除了exe文件,还存放了启动、关闭Tomcat的脚本以及一些其他脚本。.sh结尾的为linux下执行命令,.bat结尾的为windows下执行命令。由于 Win32 命令行缺少某些功能,因此此处有一些其他文件。
2. ②lib目录内容如下图: (图四) 用于存放Tomcat依赖的一些jar包。 3. ③conf目录(图五) conf,顾名思义就是存放配置文件的目录。这个我们都很熟悉,特别是server.xml文件,经常会修改其中的一些配置,它也是容器的主配置文件。 4. ④logs目录这个目录默认是空的,用于存放日志文件。 5. ⑤ temp目录这个目录用于存放运行时产生的一些临时文件。 6. ⑥ webapp目录我们熟悉的放置网站文件的目录,默认情况下有示例程序在其中,如下图。 (图六) 7. ⑦ work目录这个目录用于存放tomcat在运行时的编译后文件,例如JSP编译后的文件。 8. ⑧ 一些说明文件图二的最下部分用黄框标识的文件为一些帮助文件。例如LICENSE、升级日志、编译方法等。 (图七 三、部署多个实例按照图二的数字标识颜色,将绿色标识的文件夹剪切出来,分别放置为D:\server1和E:\server2两个拷贝,如下两幅图: (图八) (图九) 剩余文件在F:\apache-tomcat-10.0.16,见下图 (图十) 这样相当于是两个实例server1和server2共用一套bin和lib文件。而server1和server2的目录中只放置和自身server相关的文件。 当然server1和server2不可能使用相同的端口,会发生端口冲突,现在将server2的端口修改一下,修改server2的server.xml文件,主要涉及Server和Connector两个节点: 修改Server的shutdown端口: (图十一) 将默认的8005改为了8006. 修改Connector的监听端口: (图十二) 将默认的8080改为了8081。redirectPort用于当请求ssl资源时使用,默认8443,此处不涉及ssl部署,可以不修改,若用到则按需修改。 三、启动服务打开CMD命令,定位到F:\apache-tomcat-10.0.16\bin目录:
设置变量CATALINA_BASE指向server1的目录:
调用catalina.bat启动服务:
(图十三) 执行结果如上图,可见采用了设置的CATALINA_BASE=d:\server1的值,另一个变量CATALINA_HOME采用了F:\apache-tomcat-10.0.16。
设置变量CATALINA_BASE指向server2的目录:
调用catalina.bat启动服务:
(图十四) 执行结果如上图,可见采用了设置的CATALINA_BASE=e:\server2的值,另一个变量CATALINA_HOME仍然采用了F:\apache-tomcat-10.0.16。 分别访问http://localhost:8080和http://localhost:8081,可见两个服务均已启动成功,如下图: (图十五) 注:为了方便,可以将上述命令编写到bat文件中。 四、CATALINA_HOME与CATALINA_BASE通过上面的例子可知,部署两个server的关键是CATALINA_BASE变量。 对应这个变量还有个CATALINA_HOME,二者什么关系呢?官方文档:Apache Tomcat 10 (10.0.16) - Introduction中有对应的说明,简要说一下:
d:\server1和e:\server2两个目录是从原来的F:\apache-tomcat-10.0.16文件夹拆分出来的,所以默认情况下,如果不做拆分,这两个值应该是一样的,即都是F:\apache-tomcat-10.0.16。 为什么使用CATALINA_BASE? 默认情况下,CATALINA_HOME和CATALINA_BASE指向同一目录。当您需要在一台计算机上运行多个 Tomcat 实例时,手动设置CATALINA_BASE。这样做具有以下优点:
总结前面的文章中,一个Tomcat下只有一个Server组件,本文展示了可以设置多个的情况,那么除了这种方式,还有什么方式可以部署多个网站呢?Tomcat和Server的对应关系是什么?一对多?多对多?后面的文章继续讨论。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:00:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |