Web应用服务器学习-从Tomcat开始

741 阅读3分钟

Web服务之Tomcat介绍

       谈到web服务器,我们脑海中可能很快想到的是Tomcat、Jetty、Apache、Nginx等等,对于以Java语言为主开发语言的应用大概有80%部署在Tomcat上,即使这几年炒的热火朝天的微服务也是直接使用tomcat部署或以内嵌形式启动。通过表象看本质,我们暂时忘记springboot怎么启动,怎么加载tomcat容器之类的话题,我们今天直接开始Tomcat的学习。

        tomcat目前可生产版本发布到9+,遵循servlet4.0 JSP2.3 规范,适配JDK1.8,貌似版本10会有大的动作,下面这段就是官方docs里的一段文本:Users of Tomcat 10 onwards should be aware that, as a result of the move from Java EE to Jakarta EE as part of the transfer of Java EE to the Eclipse Foundation, the primary package for all implemented APIs has changed from javax.* to jakarta.*. This will almost certainly require code changes to enable applications to migrate from Tomcat 9 and earlier to Tomcat 10 and later. A migration tool is under development to aid this process.

目录

目录说明
/bin执行脚本,例如windows系统直接点击satrtUp.bat,即可启动一个web应用服务,可以通过http://localhost:8080 查看tomcat界面;
/conf配置文件,重点关注server.xml,服务的配置;另外需要看一下的context.xml,web.xml还有对接JUL门面日志的log配置
/lib程序应用包
/log默认日志存储目录
/webapps应用程序目录,war包丢进来:)

CATALINA_HOME & CATALINA_BASE 区别

       很多人用了很久Tomcat可能没有在本机配置过这两个环境变量,对两者具体区别和作用区分的不是很清晰,作为一个系列专题的开篇,这里就慢慢到来,go on. CATALINA_HOME指向是tomcat的安装目录;CATALINA_BASE指向是应用的部署目录,可以应用同一份公共资源的同时,做到互相隔离。例如: 默认二者指向同一目录,CATALINA_BASE应用在不创建Tomcat安装目录副本,多实例运行tomcat时。打个比方,电脑A上安装可一个Tomcat,User A和User B可以将各自的应用包丢到webapps,那么就没做到各自隔离,startUp和shutdown互相干扰,这是我们可以这样设置,系统环境变量配置一个CATALINA_HOME,User A 和 User B在用户变量配置自己的CATALINA_BASE,做到应用同一份公共资源的同时,做到互相隔离。

1、将图片框的私有的目录拷贝到我们自己的用户空间来,修改instance1下server.xml,避免端口占用

Server port="8015" 修改为8115
Connector port="8080" 修改为8085
Connector port="8009" 修改为8109

2、编写启动脚本startup.bat,当然这里的指定均可配置到环境变量中,这里写出来更直观

set "CATALINA_BASE=%cd%"
set "CATALINA_HOME=D:\work\WebServer\apache-tomcat-9.0.39-windows-x64"
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
  
call "%EXECUTABLE%" start 

3、最后我们可以启动2个tomcat服务,端口分别为8080和8085。

时间不早了,下次再来,老夫撤了,bye~