Linux服务器教程之九Tomcat 服务器部署
任务目标
1、能够描述Tomcat的使用场景
2、能够简单描述Tomcat的工作原理
3、能够实现部署安装Tomcat
4、能够实现配置Tomcat的service服务和自启动*
5、能够实现Tomcat的Host的配置
6、能够实现Nginx反向代理Tomcat
一、JAVA概念
1.1java容器
用于存放与运行java代码的环境,web中间件
*java**容器* | |
---|---|
Tomcat | 最常用,较重,功能完善. |
Jetty | 轻量,功能较少. |
Weblogic jBoss | 用于Oracle数据库环境使用,Weblogic属于甲骨文. |
东方通 | 国产java容器. |
1.2 3.1 *JVM-JRE-JDK*⭐⭐⭐⭐⭐
1份代码处处运行与使用. 代码的可移植性
JVM: java 虚拟机中,运行java代码的地方
二、Tomcat介绍
1、简介
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat支持最新的Servlet和JSP规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
同类软件:
jboss jetty
weblogic ORACLE 商业用付费 EJB企业支持 重载配置
websphere IBM 商业授权
Resin是CAUCHO公司的产品,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发。
2、工作原理图示
coyote是tomcat的Connector框架的名字,简单说就是coyote来处理底层的socket,并将http请求、响应等字节流层面的东西,包装成Request和Response两个类(这两个类是tomcat定义的,而非servlet中的ServletRequest和ServletResponse),供容器使用
1、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得。
2、Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应。
3、Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host。
4、Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有的Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理)。
5、path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL PATTERN为*.jsp的Servlet,对应于JspServlet类。
6、构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost().执行业务逻辑、数据存储等程序。
7、Context把执行完之后的HttpServletResponse对象返回给Host。
8、Host把HttpServletResponse对象返回给Engine。
9、Engine把HttpServletResponse对象返回Connector。
10、Connector把HttpServletResponse对象返回给客户Browser。
3、规划
*环境* | ||
---|---|---|
web03 | 192.168.xx.9/172.16.1.9 | tomcat |
web04 | 192.168.xx.10/172.16.1.10 | tomcat |
db01 | 192.168.xx.51/172.16.1.51 | mariadb不动了 |
db02 | 192.168.xx.52/172.16.1.52 | mysql |
三、安装和配置
1、安装方式介绍
①yum方式安装 加载epel源,版本目前为tomcat7.0
②二进制方式安装 直接下载,部署好java环境,即可运行(推荐)
③源码方式安装 需要下载Apache Ant进行编译安装
2、二进制安装
①上传获取软件
mkdir -p /app/tools/
tar xf jdk-8u341-linux-x64.tar.gz -C /app/tools/
ll /app/tools/
ln -s /app/tools/jdk1.8.0_341/ /app/tools/jdk
②部署java环境**
#tomcat配置环境变量的两种方式 三种使用其中一种即可
#第一种tomat依赖JAVA_HOME环境变量
shell > echo "export JAVA_HOME=/app/tools/jdk/bin/" >> /etc/profile
#第二种tomcat依赖java环境变量,建议!!!
export JAVA_HOME=/app/tools/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
#第三中tomcat依赖JRE_HOME变量
shell > echo "export JRE_HOME=/app/tools/jdk/java/jre" >> /etc/profile
shell > . /etc/profile
如果配置JAVA_HOME路径配置到jdk下就可以,不需要配置到bin下。
如果配置java的环境环境变量PATH,就指定到bin下。
如果启动tomcat,遇到如下问题
①没有安装jre jdk
②环境变量没有配置
③启动的软件找不到需要的java相关软件
③部署tomcat
# tar xf apache-tomcat-9.0.65.tar.gz -C /app/tools/
ln -s /app/tools/apache-tomcat-9.0.65/
/app/tools/tomcat
/app/tools/tomcat/bin/version.sh #检查jdk,tomcat信息
软件部署之后的目录结构
3、目录介绍
bin 存放启动和关闭Tomcat的脚本文件
conf 存放Tomcat服务器的各种全局配置⽂文件,其中最重要的是server.xml和web.xml
lib 存放Tomcat服务器所需的各种JAR文件
logs 存放Tomcat执行时的日志文件
temp 此目录是tomcat存放的临时文件
webapps tomcat默认存放应用程序的目录,好比apache的默认网页存放路径是/var/www/html一样
work 用于存放JSP应用程序在部署时编译后产生的class文件
项目代码目录
docs tomcat文档
examples tomcat自带的一个独立的web应用程序例子
host-manager tomcat的主机管理应用程序
manager tomcat的管理应用程序
ROOT 指tomcat的应用程序的根,如果应用程序部署在ROOT中,则
可直接通过http://ip:port 访问到
配置文件目录
catalina.policy 配置tomcat对文件系统中目录或文件的读、写执行等权限,及对一些内存,session等的管理权限
catalina.properties 配置tomcat的classpath等
context.xml tomcat的默认context容器
logging.properties 配置tomcat的日志输出方式
server.xml tomcat的主配置文件 host配置
tomcat-users.xml tomcat的角色(授权用户)配置文件
web.xml tomcat的应用程序的部署描述符文件
4、启动bin目录
tomcat的相关管理命令在$prefix/bin目录下
经常使用的命令:
catalina.sh 主命令脚本
configtest.sh 检测配置文件
shutdown.sh 关闭
startup.sh 启动
version.sh 查看版本
①测试启动tomcat
shell >./bin/startup.sh
shell > ps aux |grep tomcat
shell > netstat -lntp |grep 8080
②查看页面效果
③测试关闭tomcat
5、systemctl管理配置文件⭐⭐⭐⭐⭐⭐
服务管理指令
存放在/usr/lib/systemd/system/xxxx.service 分为3个部分.
修改或设置systemctl配置要进行重新加载配置
①编辑启动脚本,生成tomcat.pid
*systemctl**配置文件的结构* | |
---|---|
[Unit] | 指定注释信息,依赖(先后顺序) |
Description | 说明与注释 |
After | 在这里指定的服务之后运行. network.target |
[Service] | 用于指定服务开启命令,关闭命令,重启命令. |
Type=notify | 指定类型 simple 或forking即可 |
ExecStart | 服务启动命令 |
ExecStop | 服务关闭命令 |
ExecReload | 重启命令 |
EnvironmentFile | 配置环境变量的文件(一般对于编译安装,二进制安装需要加上) |
[Install] | 内容固定,用于指定运行级别. |
WantedBy=multi-user.target | 运行级别,一般都是多用户模式. |
#systemctl cat命令可以用来查看配置文件
systemctl cat sshd
#在/etc/sysconfig下设置tomcat
vim /etc/sysconfig/tomcat
JAVA_HOME=/app/tools/jdk
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/bin/:/user/sbin/:/usr/local/bin/:/usr/local/sbin/
#编辑配置文件cat /usr/lib/systemd/system/tomcat.service
[Unit]
Description=JAVAEE Web Container
After=network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=/app/tools/tomcat/bin/startup.sh
ExecReload=/app/tools/tomcat/bin/shutdown.sh && sleep 2 && /app/tools/tomcat/bin/startup.sh
ExecStop=/app/tools/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
#需要重新加载一下
systemctl daemonreload
总结
Tomcat 的核心组件, 用于处理请求并返回数据。Catalina 是其具体的实现。
Engine:表示整个 Catalina 的 Servlet 引擎,用来管理多个虚拟站点,一个 Service 最多只能有一个 Engine。但是一个 Engine 可以包含多个 Host。
Host:表示一个主机地址,或者说一个站点,一个 Host 下有可以配置多个 Context。
Context:表示一个 web 应用,一个 Web 应用可以包含多个 Wrapper
Wrapper:表示一个 Servlet,是容器中的最底层组件。
- 点赞
- 收藏
- 关注作者
评论(0)