• Tomcat-8 安装和配置


    JDK 安装:

    # 选择版本:
    yum list all | grep jdk
    
    # 安装openjdk-1.8.0:
    yum install java-1.8.0-openjdk.x86_64 -y
    
    # rpm包的jdk安装:
    下载JDK
    
    # 添加环境变量:
    vim /etc/profile.d/jdk.sh
    export JAVA_HOME=/use/java/default
    export PATH=$JAVA_HOME/bin:$PATH
    source jdk.sh
    
    # 检测安装后的openjdk的版本:
    [root@node-2 ~]# java -version
    openjdk version "1.8.0_252"
    OpenJDK Runtime Environment (build 1.8.0_252-b09)
    OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode) 
    
    
    

    tomcat 安装:

    ################# RPM 安装####################
    # 安装 Tomcat 软件依赖:
    yum install tomcat tomcat-admin-webapps tomcat-webapps -y
    
    # 查看 yum 安装tomcat 到哪里:
    rpm -ql  tomcat
    
    # 启动tomcat:
    systemctl enable tomcat.service 
    systemctl start tomcat.service
    
    
    ################ tar 安装 ########################
    # 源码安装:
    cd /data/src/
    wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.tar.gz
    tar -zxf apache-tomcat-8.5.55.tar.gz && mv apache-tomcat-8.5.55 /data/soft/ 
    ln -sv /data/soft/apache-tomcat-8.5.55 /data/soft/tomcat
    
    # 添加系统账号(小权限用户来启动应用):
    useradd -r www
    chown -R www.www ./
    su - www -c '/data/soft/tomcat/bin/catalina.sh start'
    ps aux | grep tomcat 
    

    目录结构

    目录 说明
    bin 服务启动,停止相关
    conf 配置文件
    lib 库目录
    logs 日志目录
    webapps 应用程序,应用部署
    work JSP 编译后的结果文件

    配置文件:

    文件名 说明
    server.xml 主配置文件
    web.xml 每个webapp只有部署后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为:WEB-INF/目录中,此文件为所有的webapps提供默认部署相关的配置
    context.xml 每个webapp 都可以专用的配置文件, 它通常由专用的配置文件context.xml来定义,其存放位置为web-inf/目录中,此文件为所有的webapps提供默认配置.
    tomcat-user.xml 用户认证的账号和密码文件
    catalina.policy 当使用-security选项启动tomcat时,用于为tomcat设置安全策略.
    catalina.properties java属性的定义文件, 用于设定加载器路径,以及一些与JVM调优相关参数
    logging.properties 日志系统相关的配置,log4j

    image

    部署打包:

    # 介绍参数:
    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    appBase       # 代码目录
    unpackWARs    # 自动解压
    autoDeploy    # 自动部署
    
    #部署Deploy:
    1  部署:    将webapp的源文件放置到目标目录, 通过web.xml和context.xml 文件中的路径就可以访问该webapp,通过类加载器加载其特有的类和依赖的类到JVM上
      1.1 )  自动部署 Auto Deploy: Tomcat发现多了这个应用就把它加载起来.
      1.2 )  手动部署 :
             1.2.1 )  冷部署: 将webapp放到指定目录,才去启动Tomcat
             1.2.2 ) 热部署: Tomcat 服务不停止,需要依赖工具manager,ant脚本,TCD(tomcat client deployer)等
    2  反部署 undeploy:   停止webapp的运行,并从JVM上清楚已经加载的类,从tomcat实例上卸载掉webapp
    3  启动start:          是webapp能够访问
    4  停止stop :          webapp 不能访问,不能提供服务,但是JVM并不清除它.
    

    添加一个应用:

    # cd
    常见开发项目目录组成
    # mkdir projects/myapp/{WEB-INF,classes,lib} -pv
    mkdir: 已创建目录 "projects"
    mkdir: 已创建目录 "projects/myapp"
    mkdir: 已创建目录 "projects/myapp/WEB-INF"
    mkdir: 已创建目录 "projects/myapp/classes"
    mkdir: 已创建目录 "projects/myapp/lib"
    
    常见应用首页,内容就用上面的test.jsp
    # vi projects/myapp/index.jsp
    
    手动复制项目目录到webapps目录下去
    # cp -r projects/myapp/ /usr/local/tomcat/webapps/
    
    使用http://YourIP:8080/myapp/访问试试看
    
    

    配置详解 server.xml

    
    <?xml version="1.0" encoding="UTF-8"?>
    <Server port="8005" shutdown="SHUTDOWN">
        <Service name="Catalina">
            <Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />
            <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
            
            <Engine name="Catalina" defaultHost="localhost">
                <Host name="localhost" appBase="webapps"
                    unpackWARs="true" autoDeploy="true">
                </Host>
            </Engine>
        </Service>
    </Server>
    
    ## 安全建议: 关闭此端口. 8005是Tomcat的管理端口,默认监听在127.0.0.1上。SHUTDOWN这个字符串接收到后就会关闭此Server。
    <Server port="8005" shutdown="SHUTDOWN">
    **  这个管理功能建议禁用,改shutdown为一串猜不出的字符串。
    <Server port="8005" shutdown="aldfjfgfgdfasxcvbgjywrtyehefghdfgsdgsd">
    
    ## 用户认证,配置文件是conf/tomcat-users.xml。
      <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>
      
    

    打开tomcat-users.xml,我们需要一个角色manager-gui。

    <tomcat-users xmlns="http://tomcat.apache.org/xml"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
                  version="1.0">
    <role rolename="manager-gui"/>
    <user username="wayne" password="wayne" roles="manager-gui"/>
    </tomcat-users>
    
    *** Tomcat启动加载后,这些内容是常驻内存的。如果配置了新的用户,需要重启Tomcat。
    

    访问manager的时候告诉403,提示中告诉去manager的context.xml中修改

    # 允许访问的IP或者网络(allow里面加入 192.168.d+.d+|0.0.0.0|10.d+.d+.d+ )
    vim /data/soft/tomcat/webapps/manager/META-INF/context.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <Context antiResourceLocking="false" privileged="true" >
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1|192.168.d+.d+|0.0.0.0|10.d+.d+.d+" />
      <Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Lin
    ked)?HashMap"/>
    </Context>
    
    

    访问manager 页面,测试各种功能:

    /data/soft/tomcat/bin/catalina.sh stop
    /data/soft/tomcat/bin/catalina.sh start
    
    # 浏览器访问:
    http://IP:8080/   页面上功能即可使用
    
    

    虚拟主机配置:

    1 Service 实例配置:一般情况下一个server实例配置一个service,name属性相当于该Service的ID.
        <Service name="Catalina">
    
    2  连接器配置:
        * 8080是http端口,8443是https端口:
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    
    3  引擎配置:
       * defaultHost指向内部定义某虚拟主机,缺省虚拟 主机可以改动,默认localhost.
       *** 在defaultHost这里,可以更改主机的缺省默认主机id,必须是下面Host 区块里面的,默认访问就是制定的ID.一定要一样
       <Engine name="Catalina" defaultHost="localhost">
       
    4  虚拟主机配置:
       4.1 )  name        必须是主机名,用主机名来匹配.
       4.2 )  appBase     当期主机的网页根目录, 相对于CATALINA_HOME,也可以使用绝对路径.
       4.3 )   unpachWARs  是否自动解压war格式. 
       4.4 )  autoDeploy  热部署,自动加载并运行应用.
       
       4.5 )  创建网站根目录(/data/webapps/ROOT),创建内部文件夹(classes,lib,WEB-INF,index.jsp)
               mkdir -p /data/webapps/ROOT && mkdir -pv /data/webapps/ROOT/{classes,lib,WEB-INF}, 再创建一个index.jsp.
               
               <Host name="node1.magedu.net"  appBase="/data/webapps" unpackWARs="true" autoDeploy="false">
               </Host>
               *** 修改配置记得要重启.
               /data/soft/tomcat/bin/catalina.sh configtest
               /data/soft/tomcat/bin/catalina.sh stop
               /data/soft/tomcat/bin/catalina.sh start
    
    """ index.jsp
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>jsp例子</title>
    </head>
    <body>
    node1.magedu.net 后面的内容是服务器端动态生成字符串,最后拼接在一起
    <%
    out.println("hello jsp");
    %>
    </body>
    </html>
    
    """
    
    5 Context 配置:
      5.1 ) 路径映射.
      5.2 ) 应用独立配置,例如单独配置应用日志, 单独配置应用访问控制.
      5.3 ) 代码如下:
        <Host name="node1.magedu.net"  appBase="/data/webapps" unpackWARs="true" autoDeploy="false">
          <Context path="/test" docBase="/data/test" reloadable="" />
        </Host>
     
        mkdir /data/myappv1        # 创建一个版本myappv1
        cp -rf webapps/ROOT/* myappv1/  # cp 内容到新版本目录
        ln -sv myappv1 test        #给新版本做个软连接, 
    
        ** 重启tomcat后
        使用http://node1.magedu.com:8080/test/
    
       5.4 ) 配置说明:
        path指的是访问的路径
        docBase,可以是绝对路径,也可以是相对路径(相对于Host的appBase)
        reloadable,true表示如果WEB-INF/classes或META-INF/lib目录下.class文件有改动,就会将WEB应用重新加载。
        生成环境中,会使用false来禁用。
    
    
    *** 注意:这里特别使用了软链接,原因就是以后版本升级,需要将软链接指向myappv2,重启Tomcat。如果新版上
    线后,出现问题,重新修改软链接到上一个版本的目录,并重启,就可以实现回滚。
    
  • 相关阅读:
    使用IDEA进行远程调试
    看实习生需求文档有感
    企业应用系统设计分享PPT
    tmux/screen里面如何用鼠标滚轮来卷动窗口内容
    Error: cannot find a valid baseurl for repo: rpmfusion-free 解决办法
    pom中定义某jar包的依赖,但并不使用该jar包,那最后部署的应用中会有这个jar包么?
    U盘容量减少的解决办法
    使用注解属性绑定
    RESTful的理解
    Spring 文件上传功能
  • 原文地址:https://www.cnblogs.com/zhenxing06/p/13084095.html
Copyright © 2020-2023  润新知