zoukankan      html  css  js  c++  java
  • Tomcat部署

    Tomcat部署

    简介

    Tomcat是一个免费的开源的Serlvet容器,用来运行java程序的容器

    Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用;

    是开发和调试Servlet(Server Applet)、JSP(Java Server Pages) 程序的首选;

    Tomcat就是传说中的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中,而tomcat本身的运行也依赖于jdk环境。

    常见的中间件

    1. 一般本地开发的话,小项目,或者是个人开发建议使用tomcat;
    2. linux系统建议使用jetty或apache hpppd;
    3. 大型的项目就用JBOSS或webloigc;
    4. 大项目或者商业项目一般采用:weblgoic/webshere,其他的还有jboss、glasshfish等;
    5. 一些示例项目或者小项目常采用jetty;
    6. tomcat , jboss, weblogic, websphere 一般项目tomcat就可以了。

    Tomcat应用场景:lnmt

    原理

    Tomcat顶层结构图:

    1. Connector用于处理连接相关的事情,并提供Socket与Request和Response相关的转化
    2. Container用于封装和管理Servlet,以及具体处理Request请求

    一个Tomcat中只有一个Server,一个Server可以包含多个Service,一个Service只有一个Container,但是可以有多个Connectors,这是因为一个服务可以有多个连接,如同时提供Http和Https链接,也可以提供向相同协议不同端口的连接;

    多个 Connector 和一个 Container 就形成了一个 Service,有了 Service 就可以对外提供服务了,但是 Service 还要一个生存的环境,必须要有人能够给她生命、掌握其生死大权,那就非 Server 莫属了!所以整个 Tomcat 的生命周期由 Server 控制。

    image

    Tomcat主要组件

    • 服务器Server:Tomcat中最顶层的容器,代表整个服务器;
    • 服务Service:server中至少包含一个Service,用于提供服务,service主要包含2个部分Connector和Container;
    • 连接器Connector:一个Service包含多个Connector,用于处理Sockt连接,并将Socket连接封装成Reques和Response;
    • 容器Container:一个Service中只有一个Connector,用于封装和管理Servlet。

    注意:连接器Connector和容器Container是Tomcat的核心

    小结

    (1)Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector和一个Container;
    (2) Server掌管着整个Tomcat的生死大权;
    (4)Service 是对外提供服务的;
    (5)Connector用于接受请求并将请求封装成Request和Response来具体处理;
    (6)Container用于封装和管理Servlet,以及具体处理request请求。

    知道了整个Tomcat顶层的分层架构和各个组件之间的关系以及作用,对于绝大多数的开发人员来说Server和Service对我们来说确实很远,而我们开发中绝大部分进行配置的内容是属于Connector和Container

    配置文件

    Tomcat配置文件详情:

    目录 含义
    bin 存放启动和关闭tomcat脚本
    conf 存放不同的配置文件(server.xml主配置文件;web.xml补充额外的功能;tocat-user.xml管理端配置(文件 用户名 密码)
    lib/japser/common 存放tomcat运行需要的库文件(JARS)
    logs 存放tomcat执行时的Log文件
    src 存放tomcat的源代码
    webapps tomcat的主要web发布目录
    work 存放jsp编译后产生的class文件

    注意:bin目录下startup.bat为启动tomcat、shutdown.bat为关闭tomcat

    Tomcat配置文件内容详情

    server.xml主配置文件

    防止多个项目服务端口冲突,修改端口协议

    [root@localhost ~]# vim /usr/local/tomcat/first-project/conf/server.xml 
    
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    

    tomcat-users.xml用户配置文件

    配置登录信息(用户名:tomcat 密码:123456)

    [root@localhost ~]# vim /usr/local/tomcat/first-project/conf/tomcat-users.xml
    #可以在最后添加以下内容
    <role rolename="admin-gui"/>
    <role rolename="manager-gui"/>
    <user username="tomcat" password="123456" roles="admin-gui,manager-gui"/>
    </tomcat-users>
    

    Tomcat项目部署

    下载安装包

    Tomcat安装包网站:https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/

    访问网站,选择你需要的版本

    image

    选择 tomcat-10 ---> v10.0.6 ---> /bin ---> apache-tomcat-10.0.6.tar.gz

    image

    右键复制链接,使用wget命令下载到本机(192.168.110.14)

    //安装wget命令
    [root@localhost ~]# yum -y install wget
    
    //下载
    [root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz
    
    --2021-05-13 22:52:40--  https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz
    Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
    Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 11822805 (11M) [application/octet-stream]
    Saving to: ‘apache-tomcat-10.0.6.tar.gz’
    
    apache-tomcat-10.0.6 100%[======================>]  11.27M  1.72MB/s    in 13s     
    
    2021-05-13 22:52:54 (863 KB/s) - ‘apache-tomcat-10.0.6.tar.gz’ saved [11822805/11822805]
    

    java环境安装

    //安装jdk环境
    [root@localhost ~]# yum -y install java-11-openjdk
    
    //查看版本
    [root@localhost ~]# java -version
    openjdk version "11.0.11" 2021-04-20 LTS
    OpenJDK Runtime Environment 18.9 (build 11.0.11+9-LTS)
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.11+9-LTS, mixed mode, sharing)
    

    安装Tomcat

    //查看安装包
    [root@localhost ~]# ls
    anaconda-ks.cfg  apache-tomcat-10.0.6.tar.gz
    
    //解压安装包
    [root@localhost ~]# tar xf apache-tomcat-10.0.6.tar.gz 
    [root@localhost ~]# ls
    anaconda-ks.cfg  apache-tomcat-10.0.6  apache-tomcat-10.0.6.tar.gz
    
    //创建一个tomcat目录在/usr/local/下,用来用来存放项目
    [root@localhost ~]# mkdir /usr/local/tomcat
    
    //把解压好的安装包移到刚才创建的tomcat目录下,取名为first-project作为第一个项目
    [root@localhost ~]# mv apache-tomcat-10.0.6 /usr/local/tomcat/first-project
    

    启动Tomcat

    注意事项:

    • 存在多个项目的时候,不能做环境变量
    • 需要进到对应的项目目录,使用 bin下的启动脚本 以绝对路径的方式启动
    //启动项目first-froject的中间件Tomcat
    #进到first-project项目下
    [root@localhost ~]# cd /usr/local/tomcat/first-project/
    
    #使用bin下的启动脚本启动
    [root@localhost first-project]# bin/startup.sh 
    Using CATALINA_BASE:   /usr/local/tomcat/first-project
    Using CATALINA_HOME:   /usr/local/tomcat/first-project
    Using CATALINA_TMPDIR: /usr/local/tomcat/first-project/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/first-project/bin/bootstrap.jar:/usr/local/tomcat/first-project/bin/tomcat-juli.jar
    Using CATALINA_OPTS:   
    Tomcat started.
    
    #启动成功,8080端口起来了
    #8080端口用来访问服务的;8005端口用来停止服务的,监听本机,不能访问
    [root@localhost first-project]# ss -antl
    State     Recv-Q    Send-Q            Local Address:Port       Peer Address:Port    
    LISTEN    0         128                     0.0.0.0:22              0.0.0.0:*       
    LISTEN    0         1            [::ffff:127.0.0.1]:8005                  *:*       
    LISTEN    0         100                           *:8080                  *:*       
    LISTEN    0         128                        [::]:22                 [::]:*       
    
    #查看tomcat进程
    [root@localhost first-project]# ps -ef | grep tomcat
    root        2659       1  8 23:20 pts/0    00:00:02 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/first-project/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/first-project/bin/bootstrap.jar:/usr/local/tomcat/first-project/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/first-project -Dcatalina.home=/usr/local/tomcat/first-project -Djava.io.tmpdir=/usr/local/tomcat/first-project/temp org.apache.catalina.startup.Bootstrap start
    root        2695    1584  0 23:20 pts/0    00:00:00 grep --color=auto tomcat
    

    创建一个Hello World的java网页

     //创建一个index.jsp
     [root@localhost ~]# vi index.jsp 
    
    <html>
    <head>
            <title>test page</title>
    </head>
    <body>
            <%
                out.println("Hellow World");
            %>
    </body>
    </html>
    
    //创建一个test目录存放测试网页
    #创建
    [root@localhost ~]# mkdir /usr/local/tomcat/first-project/webapps/test/
    
    #拷贝进去
    [root@localhost ~]# cp index.jsp /usr/local/tomcat/first-project/webapps/test/
    [root@localhost ~]# ls /usr/local/tomcat/first-project/webapps/test/
    index.jsp
    
    //重启服务
    #停止服务
    [root@localhost ~]# /usr/local/tomcat/first-project/bin/shutdown.sh 
    Using CATALINA_BASE:   /usr/local/tomcat/first-project
    Using CATALINA_HOME:   /usr/local/tomcat/first-project
    Using CATALINA_TMPDIR: /usr/local/tomcat/first-project/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/first-project/bin/bootstrap.jar:/usr/local/tomcat/first-project/bin/tomcat-juli.jar
    Using CATALINA_OPTS:   
    NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
    [root@localhost ~]# ss -antl
    State     Recv-Q     Send-Q         Local Address:Port         Peer Address:Port    
    LISTEN    0          128                  0.0.0.0:22                0.0.0.0:*       
    LISTEN    0          128                     [::]:22                   [::]:*       
    
    #开启服务
    [root@localhost ~]# /usr/local/tomcat/first-project/bin/startup.sh 
    Using CATALINA_BASE:   /usr/local/tomcat/first-project
    Using CATALINA_HOME:   /usr/local/tomcat/first-project
    Using CATALINA_TMPDIR: /usr/local/tomcat/first-project/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat/first-project/bin/bootstrap.jar:/usr/local/tomcat/first-project/bin/tomcat-juli.jar
    Using CATALINA_OPTS:   
    Tomcat started.
    [root@localhost ~]# ss -antl
    State     Recv-Q     Send-Q         Local Address:Port         Peer Address:Port    
    LISTEN    0          128                  0.0.0.0:22                0.0.0.0:*       
    LISTEN    0          100                        *:8080                    *:*       
    LISTEN    0          128                     [::]:22                   [::]:*  
    
    //启动和关闭还有一种方式
    #开启
    [root@localhost ~]# /usr/local/tomcat/first-project/bin/catalina.sh stop
    #关闭
    [root@localhost ~]# /usr/local/tomcat/first-project/bin/catalina.sh start
    

    访问测试

    注意:在访问网页之前需要关闭防火墙

    systemctl disable --now firewalld
    sed -ri 's/^(SELINUX=).*/1disabled/g' /etc/sysconfig/selinux
    setenforce 0
    

    访问Tomcat默认主页

    默认主页配置文件位置:在/webapps/下,ROOT文件就是默认首页的配置文件

    访问IP地址(192.168.110.14) + 8080端口

    image

    访问项目测试页面

    在后面加上之前存放网页的路径(/test/)

    image

    访问Host Manager界面

    配置tomcat-users.xml文件

    //修改配置文件,修改密码123456
    [root@localhost ~]# vim /usr/local/tomcat/first-project/conf/tomcat-users.xml
    
    #搜索</tomcat-users>,在这一行上面加上以下这两行配置
    <role rolename="admin-gui"/>
    <user username="tomcat" password="123456" roles="admin-gui"/>
    
    </tomcat-users>    //在这一行前面加上配置
    

    配置host-manager/META-INF/context.xml文件

    //授权192.168.110网段
    [root@localhost ~]# vim /usr/local/tomcat/first-project/webapps/host-manager/META-INF/context.xml
    
    <Context antiResourceLocking="false" privileged="true" >
      <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                       sameSiteCookies="strict" />
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="192.168.110.d+|127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />   //修改这一行
      <Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Linked)?HashMap"/>
    </Context>
    

    重启服务

    [root@localhost ~]# /usr/local/tomcat/first-project/bin/catalina.sh stop
    [root@localhost ~]# /usr/local/tomcat/first-project/bin/catalina.sh start
    

    访问192.168.110.14:8080 ---> 点击Host Manager访问

    image

    输入用户名:tomcat 密码:123456

    image

    Host Manager页面如下

    image

    访问Server Status界面和Manager App界面

    配置tomcat-users.xml文件

    //修改配置文件,修改密码123456
    [root@localhost ~]# vim /usr/local/tomcat/first-project/conf/tomcat-users.xml
    
    #搜索</tomcat-users>,在这一行上面加上以下这两行配置
    
    <role rolename="admin-gui"/>
    <role rolename="manager-gui"/>    //添加这一行
    <user username="tomcat" password="123456" roles="admin-gui,manager-gui"/>   //修改此行,添加一个manager-gui
    
    </tomcat-users>    //在这一行前面加上配置
    

    配置manager/META-INF/context.xml 文件

    //授权192.168.110网段
    [root@localhost ~]# vim /usr/local/tomcat/first-project/webapps/manager/META-INF/context.xml 
    
    <Context antiResourceLocking="false" privileged="true" >
      <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                       sameSiteCookies="strict" />
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="192.168.110.d+|127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />    //添加这一行
      <Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Linked)?HashMap"/>
    </Context>
    

    重启服务

    [root@localhost ~]# /usr/local/tomcat/first-project/bin/catalina.sh stop
    [root@localhost ~]# /usr/local/tomcat/first-project/bin/catalina.sh start
    

    1. 访问Server Status界面,点击Server Status ---> 输入用户名:tomcat 密码:123456

    image
    Server Status界面如下

    image

    2. 访问Manager App界面,点击Manager App

    image

    Manager App界面如下,因为访问了Server Status界面,所以不用输入密码

    image

    大功告成,以上就是Tomcat部署的全部步骤!!!

  • 相关阅读:
    Java面向对象编程 -5
    Java面向对象编程 -4.3
    Java面向对象编程 -4.2
    Java面向对象编程 -4
    Java面向对象编程 -3.3
    Java面向对象编程 -3.2
    Java面向对象编程 -3
    自解压格式的命令
    windows批处理命令学习
    使用自解压格式
  • 原文地址:https://www.cnblogs.com/leixixi/p/14766817.html
Copyright © 2011-2022 走看看