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

发布时间:2021-06-29 10:01:59 作者:chen
来源:亿速云 阅读:398

这篇文章主要讲解了“快速搭建平台和环境部署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实例即可。

    快速搭建平台和环境部署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
      <Server port="8006">   2)Connector Port:该端口用于监听HTTP的请求,默认为8080

          <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

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

           <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

  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/<Engine名称>/<Host名称>,对于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以下两个参数

    <Server port="8010" shutdown="SHUTDOWN">    //修改shutdown命令监听端口
    <Connector port="8081" protocol="HTTP/1.1"        //修改Connector链接器监听端口
               connectionTimeout="20000"
               redirectPort="8443" />

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

    <Server port="8020" shutdown="SHUTDOWN">    //修改shutdown命令监听端口
    <Connector port="8082" protocol="HTTP/1.1"        //修改Connector链接器监听端口
               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

<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>Apache Tomcat Examples</title>
</head>
<body>
<h2>This is Tomcat 0</H1>
</body></html>

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

<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>Apache Tomcat Examples</title>
</head>
<body>
<h2>This is Tomcat 1</H1>
</body></html>

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

<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>Apache Tomcat Examples</title>
</head>
<body>
<h2>This is Tomcat 2</H1>
</body></html>

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

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

快速搭建平台和环境部署Tomcat的方法快速搭建平台和环境部署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文件测试一下配置结果:

访问静态主页:

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

访问动态页面:

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

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

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

总结:

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

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

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

推荐阅读:
  1. Java快速搭建平台
  2. CentOS平台快速搭建LAMP环境的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

tomcat

上一篇:怎么解决zsh使用scp命令时*通配符出现no matches的错误

下一篇:CPU怎么读取cache、内存、磁盘性能

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》