千家信息网

快速搭建平台和环境部署Tomcat的方法

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要讲解了"快速搭建平台和环境部署Tomcat的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"快速搭建平台和环境部署Tomcat的方法"吧
千家信息网最后更新 2024年11月26日快速搭建平台和环境部署Tomcat的方法

这篇文章主要讲解了"快速搭建平台和环境部署Tomcat的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"快速搭建平台和环境部署Tomcat的方法"吧!

Tomcat部署的基本概念

1. CATALINA_HOME与CATALINA_BASE分别指什么?

    CATALINA_HOME指的是Tomcat的安装目录

    bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/startup.sh等

    conf:\\Tomcat配置文件所在目录,最主要的就是server.xml与web.xml

    lib:\\主要存放Tomcat依赖包

    logs:\\Tomcat日志所在目录。以为catalina、host-manager等开头日志

    temp:\\存放Tomcat运行时的临时文件,通常放一些缓存文件,一般不要删除

    webapps:\\应用部署所在目录,就是在这里存放我们需要部署的文件目录、WAR包

    work:\\存放由JSP文件生成的Servlet

    RUNNING.txt:\\运行说明,必需的一些环境信息

    NOTICE:\\通知信息,软件的版权信息等

    RELEASE-NOTES:\\发布说明,比如版本升级的功能说明

    LICENSE:\\版权许可证,软件版权信息

    CATALINA_BASE指的是Tomcat的实例所在目录,Tomcat的实例由除了bin、lib外的目录组成

    两者的对比图如下一目了然,配置多实例,也只需要Copy相应的目录组成新的Tomcat实例即可。

    

2. conf目录下的配置文件具体用来做什么?

    Tomcat的配置需要分为:JVM配置、服务器配置、Web应用配置、Tomcat管理配置四个方面(其中JVM的配置一般在catalina.sh/catalina.bat中配置,这里不做介绍),这里只做简单的介绍,不会具体介绍Tomcat配置

    1)服务器配置

      服务器配置主要集中于$CATALINA_HOME/conf下的catalina.policy、catalina.properties、context.xml、server.xml、tomcat-users.xml、web.xml文件。

    2)Web应用配置

      web.xml是Web应用的部署描述文件,它支持的元素及属性来自于Servlet规范定义。在Tomcat中,Web应用的部署描述信息包括$CATALINA_BASE/conf/web.xml中的默认配置。Tomcat的默认配置比Web应用定制配置负责很多,如果是完全基于JSP的Web应用不需要添加任何定制配置。主要包括ServletContext的初始化参数、会话配置、Filter定义与映射等

    3)Tomcat管理配置

      主要是针对host-manager 与manager两个功能进行配置,在Tomcat中我们可以针对虚拟主机进行配置,也可以对我们的Web应用进行管理。

3. webapps下的目录哪些可以删除?

    Wwbapps目录下包括docs、ROOT、manager、host-manager、examples。webapps不一定是Tomcat部署web应用唯一的地方,可以在任何一处,但只需要做好映射即可(context.xml描述文件或者Host的appBase属性可以做到)

    事实上,全部都可以删除。为什么呢?这是因为

    1)ROOT:\\Tomcat本身默认的访问http://{ip}:{port},也就是访问http://127.0.0.1:8080标志性的Tomcat首页所在之处

    2)manager:\\访问http://{ip}:{port}/manager/html,可以管理部署应用(当然需要配置tomcat-users.xml文件)。一般部署Web应用往往是不需要的

    3)host-manager:\\访问http://{ip}:{port}/host-manager/html,可以管理配置Host虚拟主机。一般简单web应用部署也不会用到

    4)examples:\\Servlet、JSP、WebSocket示例,展示在Tomcat下如何使用等,访问http://{ip}:{port}/examples/index.html即可进入。也是不需要的,可以删除

    5)docs:\\Tomcat HTML文档中心,不影响应用部署,可以删除

4. Tomcat为了避免端口冲突需要更改哪些端口?

  1)Server Port:该端口用于监听关闭tomcat的shutdown命令,默认为8005
     2)Connector Port:该端口用于监听HTTP的请求,默认为8080

  3)AJP Port:该端口用于监听AJP( Apache JServ Protocol )协议上的请求,通常用于整合Apache Server等其他HTTP服务器,默认为8009。实际上可以不用管,因为AJP基本用不到,特别是Ngxin与Tomcat集成时(Nginx没有响应的支持AJP模块,只有第三方模块支持AJP协议)

  4)Redirect Port:重定向端口,出现在Connector配置中,如果该Connector仅支持非SSL的普通http请求,那么该端口会把 https 的请求转发到这个Redirect Port指定的端口,默认为8443;

简单的应用部署为避免端口冲突,实际上只需要更改SHUTDOWN监听端口与Connector链接器监听端口即可

5. Tomcat部署应用的方式有哪几种?

  1) Context描述文件部署

  Tomcat支持通过一个独立的Context描述文件配置并启动Web应用,该文件的存储路径由Hot中xmlBase属性指定,若不指定,则默认CATALINA_BASE/conf//,对于Tomcat默认的就是CATALINA_BASE/conf/Catalina/localhost;其实也就是conf/context.xml文件:Tomcat启动时即会自动部署该Web应用。

  2) Web部署

  即以目录的形式发布部署Web应用,复制到Host指定appBase目录下即可完成部署。

  3) WAR包部署

  xxx.war包解压成目录形式。

接下来我们根据上文Tomcat的介绍做Linux+Nginx+MariaDB+Tomcat动静分离实战演练

1.环境描述

准备两台虚拟机,一台作为nginx服务器+mysql服务器,IP为:192.168.109.131;另外一台作为Tomcat服务器配置多实例,IP为:192.168.109.132。当客户端发来请求,首先由nginx处理,如果为静态内容直接由nginx响应,将结果直接给客户端;如果为动态内容,则由nginx反向代理至后端的Tomcat服务器。

2.安装Nginx

[root@centos7~]#yum -y install gcc pcre pcre-devel openssl openssl-devel make automake autoconf wget vim

[root@centos7~]#wget http://nginx.org/download/nginx-1.17.4.tar.gz

[root@centos7~]#useradd -s /sbin/nologin nginx

[root@centos7~]#cd nginx-1.17.4

[root@centos7~]#cd nginx-1.17.4

[root@centos7 nginx-1.17.4]##./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module

[root@centos7 nginx-1.17.4]#make && make install

[root@centos7 nginx-1.17.4]#cat /usr/local/nginx/sbin/nginx

[root@centos7 nginx-1.17.4]# ln -s /usr/local/nginx/sbin/nginx /sbin

[root@centos7 nginx-1.17.4]# nginx

[root@centos7 nginx-1.17.4]# nginx -s reload

Nginx 安装完毕,稍后我们再配置,接下来安装mariadb

3.安装mariadb

[root@centos7~]#yum -y install mariadb mariadb-server mariadb-devel

[root@centos7~]#systemctl restart mariadb

[root@centos7~]#systemctl enable mariadb

Mysql安装完毕,我们切换到另一台最小化方式安装的虚拟机上安装Tomcat

4.安装Tomcat

[root@centos7~]#yum -y install wget bash-completion vim

[root@centos7~]#wget wget --no-check-certificate https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz

[root@centos7~]#yum -y install java //安装JDK

[root@centos7~]#java -version //查看JDK版本

[root@centos7~]#yum install -y tomcat-webapps tomcat-admin-webapps //安装tomcat管理包

[root@centos7~]#mkdir /usr/local/tomcat /usr/local/tomcat/tomcat_1 /usr/local/tomcat/tomcat_2

[root@centos7~]#tar -xvf apache-tomcat-9.0.27.tar.gz tomcat_bin -C /usr/local/tomcat/tomcat

[root@slave tomcat]#mv apache-tomcat-9.0.27 tomcat_bin

[root@slave tomcat_bin]# cp conf/ webapps/ temp/ logs/ work/ -r /usr/local/tomcat/tomcat_1

[root@slave tomcat_bin]# cp conf/ webapps/ temp/ logs/ work/ -r /usr/local/tomcat/tomcat_2

[root@slave tomcat_bin]# vim /usr/local/tomcat/tomcat_1/conf/server.xml //主要修改tomcat_1以下两个参数

//修改shutdown命令监听端口
connectionTimeout="20000"
redirectPort="8443" />

[root@slave tomcat_bin]# vim /usr/local/tomcat/tomcat_1/conf/server.xml //主要修改tomcat_2以下两个参数

//修改shutdown命令监听端口
connectionTimeout="20000"
redirectPort="8443" />

[root@centos7~]#bash /usr/local/tomcat/tomcat_bin/bin/startup.sh // 启动实例0(默认配置)

Using CATALINA_BASE: /usr/local/tomcat/tomcat_bin
Using CATALINA_HOME: /usr/local/tomcat/tomcat_bin
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_bin/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/tomcat_bin/bin/bootstrap.jar:/usr/local/tomcat/tomcat_bin/bin/tomcat-juli.jar
[root@centos7~]#bash /usr/local/tomcat/tomcat_1/bin/startup.sh //启动实例1

Using CATALINA_BASE: /usr/local/tomcat/tomcat_1
Using CATALINA_HOME: /usr/local/tomcat/tomcat_1
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_1/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/tomcat_1/bin/bootstrap.jar:/usr/local/tomcat/tomcat_1/bin/tomcat-juli.jar
Tomcat started.

[root@centos7~]#bash /usr/local/tomcat/tomcat_2/bin/startup.sh //启动实例2

Using CATALINA_BASE: /usr/local/tomcat/tomcat_2
Using CATALINA_HOME: /usr/local/tomcat/tomcat_2
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_2/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/tomcat_2/bin/bootstrap.jar:/usr/local/tomcat/tomcat_2/bin/tomcat-juli.jar
Tomcat started.

[root@centos7~]# netstat -nptl // 检查端口是否已经起来
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1482/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2045/master
tcp6 0 0 :::8009 :::* LISTEN 2956/java
tcp6 0 0 127.0.0.1:8010 :::* LISTEN 3037/java
tcp6 0 0 :::8080 :::* LISTEN 2956/java
tcp6 0 0 :::8081 :::* LISTEN 3037/java
tcp6 0 0 :::8082 :::* LISTEN 3097/java
tcp6 0 0 127.0.0.1:8020 :::* LISTEN 3097/java
tcp6 0 0 :::22 :::* LISTEN 1482/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2045/master
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2956/java

为了便于区别验证实例是否都正常工作,修改主页文件来验证

[root@centos7~]#/usr/local/tomcat/tomcat_bin/webapps/ROOT/index.jsp



Apache Tomcat Examples


This is Tomcat 0


[root@centos7~]#/usr/local/tomcat/tomcat_1/webapps/ROOT/index.jsp



Apache Tomcat Examples


This is Tomcat 1


[root@centos7~]#/usr/local/tomcat/tomcat_2/webapps/ROOT/index.jsp



Apache Tomcat Examples


This is Tomcat 2


最后,验证以下Tomcat运行是否正常。

*****************************************tomcat多实例至此安装完成***************************

5.配置nginx反向代理动态页面转发到tomcat,静态页面直接处理

[root@centos7~]#vim /usr/local/nginx/conf/nginx.conf //只保留配置部分,监听域名www.cc.com

user nginx nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web { //添加upstream模块
server 192.168.109.132:8080 ; //tomcat实例0
server 192.168.109.132:8081 ; //tomcat实例1
server 192.168.109.132:8082 ; //tomcat实例2
}
server {
listen 80;
server_name www.cc.com;
location ~* \.(do|jsp)$ { //定义访问类型转发到后端web
proxy_pass http://web;
}
location ~* tomcat\.(png|css)$ { //定义访问类型转发到后端web
proxy_pass http://web;
}

location / {
root html;
index index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
[root@centos7~]#nginx -t //测试一下nginx配置文件

[root@centos7~]#nginx -s reload //平滑启动nginx

最后本地绑定hosts文件测试一下配置结果:

访问静态主页:

访问动态页面:

总结:

实际生产环境中可能会遇到nginx多实例做负载均衡(ELB)和tomcat多实例为主的情况,根据服务器容量也有单机多实例和集群模式,所以根据不同的生产环境会有不同的配置方式,满足业务需求才是运维的第一生产力

tomcat的启停可以编辑一下Shell/Python脚本来帮助管理实例,日志的管理和参数调优也是需要继续学习的地方

感谢各位的阅读,以上就是"快速搭建平台和环境部署Tomcat的方法"的内容了,经过本文的学习后,相信大家对快速搭建平台和环境部署Tomcat的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0