Tomcat部署&Tomcat多项目实例

Tomcat部署

java容器、web容器,web中间件
  • Tomcat,Resin,JBOSS,WebSphere(IBM),Weblogic(Oracle )

    • Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

    • Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。它不仅可以显示动态内容,而且它显示静态内容的能力也非常强,速度直逼APACHESERVER。许多站点都是使用该WEB服务器构建的

    • 是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

    • WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。

    • WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

      • weblogic.docx
官网地址
架构
  • 方案一:

    • Tomcat
  • 方案二:

               Nginx 
                 |
      +--------------------+
      |          |         | 		
    Tomcat1   Tomcat2   Tomcat3
    
    • 建议使用Nginx和Tomcat配合,Nginx处理静态,Tomcat处理动态程序
部署
一、Tomcat Http Server
  • 环境

    • centos7.6

    • 4、6到8G内存

    • 配置yum扩展源

      • # yum install epel-release -y
  • 1、部署JAVA环境

    • 提示

      • 建议卸载默认安装openjdk软件
      • yum remove -y openjdk
      • 上传压缩包
        在这里插入图片描述
        1-1解压安装包
  • # tar xf jdk-8u151-linux-x64.tar.gz -C /usr/local

    • 8u均可

    • 查看解压后的文件

  • # ls /usr/local/
    bin etc games include jdk1.8.0_151 lib lib64 libexec sbin share src

    • 1-2 多版本部署java

      • # ln -s /usr/local/jdk1.8.0_151/ /usr/local/java
    • 1-3配置环境变量

      • # vim /etc/profile
        • JAVA_HOME=/usr/local/java
        • PATH=$JAVA_HOME/bin:$PATH
        • export JAVA_HOME PATH
      • # source /etc/profile
      • # env |grep JAVA
        • JAVA_HOME=/usr/local/java
    • 4测试java

      • # java -version

        java version "1.8.0_151"
        Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
        Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
        
  • 2、安装Tomcat

    • # tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local/

    • # ln -s /usr/local/apache-tomcat-7.0.42/ /usr/local/tomcat

    • 定义Tomcat所需环境变量:

      • # vim /etc/profile

        • CATALINA_HOME=/usr/local/tomcat
          • //Tomcat安装目录
        • export CATALINA_HOME
      • # source /etc/profile

  • 3、启动Tomcat

    • 启动tomcat

      • #bash /usr/local/tomcat/bin/startup.sh

        • 输出提示

          Using CATALINA_BASE:   /usr/local/tomcat
          Using CATALINA_HOME:   /usr/local/tomcat
          Using CATALINA_TMPDIR: /usr/local/tomcat/temp
          Using JRE_HOME:        /usr/local/java
          Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
          
    • 检查端口

      • # netstat -tnlp |grep java

        tcp6       0      0 :::8009                 :::*            LISTEN   31346/java
        tcp6       0      0 :::8080                 :::*            LISTEN   31346/java
        tcp6       0      0 127.0.0.1:8005          :::*            LISTEN   31346/java
        

        • 关于tomcat端口:
          • 8005
            • 是tomcat本身的端口
          • 8080
            • tomcat负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。
          • 8009
            • tomcat负责和其他的HTTP服务器建立连接。
              • 如nginx和apache互通时使用
    • 访问

      • http://192.168.229.11:8080/

        • 注意服务器地址,注意端口
      • 浏览器访问tomcat主页。注意关闭防火墙
        请添加图片描述

    • 关闭tomcat(切记,否则你会遇见500)

      • #bash /usr/local/tomcat/bin/shutdown.sh
  • 4.关于tomcat

    • tomcat主目录介绍

      [root@web ~]# ls /usr/local/tomcat/
      [root@web tomcat]# tree -L 1
      
      ├── bin              #存放tomcat管理脚本
      ├── conf             # tomcat 配置文件存放目录
      ├── lib              # web应用调用的jar包存放路径
      ├── LICENSE
      ├── logs             # tomcat 日志存放目录,catalina.out 为主要输出日志
      ├── NOTICE
      ├── RELEASE-NOTES
      ├── RUNNING.txt
      ├── temp             # 存放临时文件
      ├── webapps          # web程序存放目录  相当于httpd的/www
      	└──ROOT                             相当于httpd的/www/html
      └── work             # 存放编译产生的.java 与 .class文件
      
  • webapps目录介绍

    • # ls /usr/local/tomcat/webapps/
      docs  examples  host-manager  manager  ROOT
      
     
      [root@web03 tomcat]# cd webapps/
      [root@web03 webapps]# tree -L 1
      ├── docs            # tomcat 帮助文档
      ├── examples       # web应用示例
      ├── host-manager  # 主机管理
      ├── manager         # 管理
      └── ROOT             # 默认站点根目录
    
  • 默认网站的主目录(主页)

    • # ls /usr/local/tomcat/webapps/ROOT
  • Tomcat配置文件目录介绍(conf)

    • [root@web03 conf]# tree -L 1
      .
      ├── Catalina
      ├── catalina.policy
      ├── catalina.properties
      ├── context.xml
      ├── logging.properties
      ├── logs
      ├── server.xml           # tomcat 主配置文件
      ├── server.xml.bak
      ├── server.xml.bak2
      ├── tomcat-users.xml    # tomcat 管理用户配置文件
      ├── tomcat-users.xsd
      └── web.xml
      
  • Tomcat日志说明

    • 查看日志

      [root@web03 ~]# tailf /usr/local/tomcat/logs/catalina.out
      24-Nov-2023 15:09:51.654 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
      24-Nov-2023 15:09:51.665 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
      24-Nov-2023 15:09:51.670 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 60037 ms
      
    • 发现启动时间较长,其中有一项的启动时间占据了绝大多数

      24-Nov-2023 15:09:50.629 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /application/apache-tomcat-8.0.27/webapps/memtest.war has finished in 58,892 ms
      

      发现耗时在这里:是session引起的随机数问题导致的。Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥。为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥。

    • 解决Tomcat启动慢的方法

      • Tomcat启动慢主要原因是生成随机数的时候卡住了,导致tomcat启动不了。是否有足够的值来用于产生随机数,可以通过如下命令来查看
        • [root@web03 ~]# cat /proc/sys/kernel/random/entropy_avail 6
      • 方法
        • vim $JAVA_HOME/jre/lib/security/java.security
        • securerandom.source=file:/dev/random
        • 改为
        • securerandom.source=file:/dev/urandom
        • 问题完美解决
二、安装MySQL
  • 2-1、创建数据库:
    • 创建jspgou数据库,字符集为utf-8
  • # yum install -y mariadb-server mariadb
    • 该步骤出错。请您检查YUM源配置
      • # mv /etc/yum.repos.d/* /tmp/
      • wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      • wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  • # systemctl start mariadb
  • [root@localhost ~]# mysqladmin -u root password 123
    • 注意如果有密码
    • mysqladmin -u root -p老密码 password 新密码
  • [root@localhost ~]# mysql -u root -p123
  • MariaDB [(none)]> create database jspgou character set = utf8;
三、部署jspgou(电子商城)
  • 3-1、解压源码包

    • # unzip jspgouV6-ROOT.zip
  • 3-2、更改数据库链接:

    • 提示:在解压缩后的文件中,修改连接数据库的信息
    • [root@localhost ~]# vim ROOT/WEB-INF/config/jdbc.properties
      • jdbc.url=jdbc:mysql://127.0.0.1:3306/jspgou?characterEncoding=UTF-8
      • jdbc.username=root
      • jdbc.password=123
  • 3-3、导入数据:

    • [root@localhost ~]# mysql -u root -p123 -D jspgou < DB/jspgou.sql
    • 使用MYSQL数据库时,会发生的错误
      • 使用mysql作为数据库时,如果导入数据失败
        • 1.修改mysql配置文件
          • my.cnf中max_allowed_packet参数为64m,默认为1m
        • 2.DB/jspgou.sql里面的默认值改一下
          • 把所有datetime类型的字段默认值改成CURRENT_TIMESTAMP
    • 将程序解压后的ROOT文件夹,拷贝到tomcat安装目录下的webapps文件夹下
      • [root@localhost ~]# \cp -r ROOT /usr/local/tomcat/webapps/
        • 不使用cp 的别名。 alias cp=‘cp -i’
        • 相当于:cp -r ROOT /usr/local/tomcat/webapps/
  • 3-4、部署网站:

    • 启动tomcat
      • #bash /usr/local/tomcat/bin/startup.sh
    • 输入以下地址
      • http://192.168.229.11:8080/
        请添加图片描述
  • http://192.168.229.11:8080/jeeadmin/jspgou/index.do

  • 注意服务器地址

  • 用户名:admin

  • 密 码:123456

  • 图示
    请添加图片描述

    • 点击上图右上角浏览器图标访问网站首页
      请添加图片描述

Tomcat多实例

关闭主站
  • # bash /usr/local/tomcat/bin/shutdown.sh
准备多实例主目录
  • mkdir /usr/local/tomcat/instance{1…3}
制作实例工作目录
  • # cp -r /usr/local/tomcat/{conf,logs,temp,work} /usr/local/tomcat/instance1/

  • # cp -r /usr/local/tomcat/{conf,logs,temp,work} /usr/local/tomcat/instance2/

  • # cp -r /usr/local/tomcat/{conf,logs,temp,work} /usr/local/tomcat/instance3/

  • 查看目录结构

    • [root@www ~]# tree -d -L 2 /usr/local/tomcat/

      /usr/local/tomcat/
      ├── bin
      ├── instance1
      │   ├── conf
      │   ├── logs
      │   ├── temp
      │   └── work
      ├── instance2
      │   ├── conf
      │   ├── logs
      │   ├── temp
      │   └── work
      ├── instance3
      │   ├── conf
      │   ├── logs
      │   ├── temp
      │   └── work
      └── lib
      
      
修改端口
  • 将web配置文件拷贝三份。分别修改为不同端口

  • # vim /usr/local/tomcat/instance1/conf/server.xml

    • 1、服务端口 8080 替换成 8081

      • 修改前

         <!--   <Connector port="8080" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" />        -->
        
        
      • 修改后

        <Connector port="8081" protocol="HTTP/1.1" 
                       connectionTimeout="20000"
                       redirectPort="8443" />
        
    • 2、程序工作端口:8005替换成 8091

      • <!-- <Server port="8005" shutdown="SHUTDOWN"> -->
        
      • 程序工作端口:8005替换成 8091

      • <Server port="8091" shutdown="SHUTDOWN">
        
    • 3、网站目录:webapps 替换成 另一个目录

      • appBase=“webapps”
      • 网站目录:webapps 替换成 另一个目录
      • appBase=“/webapps”
        请添加图片描述
  • cp /usr/local/tomcat/instance1/conf/server.xml /usr/local/tomcat/instance2/conf/

    • # vim /usr/local/tomcat/instance2/conf/server.xml

    • 1、服务端口 替换成 8082

      • <Connector port="8081" protocol="HTTP/1.1"  
        
      • 服务端口 替换成 8082

      • <Connector port="8082" protocol="HTTP/1.1"  
        
    • 2、程序工作端口8091 替换成 8092

      • <Server port="8091" shutdown="SHUTDOWN">
        
      • 程序工作端口 替换成 8092

      • <Server port="8092" shutdown="SHUTDOWN">
        
  • cp /usr/local/tomcat/instance1/conf/server.xml /usr/local/tomcat/instance3/conf/

    • 1、服务端口替换为8083

      • <Connector port="8081" protocol="HTTP/1.1"  
        
      • 替换成

      • <Connector port="8083" protocol="HTTP/1.1"  
        
    • 2.服务端口替换为8093

      • <Server port="8091" shutdown="SHUTDOWN">
        
      • 替换成

      • <Server port="8093" shutdown="SHUTDOWN">
        
        启动脚本
  • # vim /usr/local/tomcat/instance1/ins1.sh

    • functions系统自带脚本。功能函数

    • #!/bin/bash
      #instance1
      . /etc/init.d/functions
      export CATALINA_BASE="/usr/local/tomcat/instance1"
      
      case "$1" in
      start)
              $CATALINA_HOME/bin/startup.sh
              ;;
      stop)
              $CATALINA_HOME/bin/shutdown.sh
              ;;
      restart)
              $CATALINA_HOME/bin/shutdown.sh
              sleep 5
              $CATALINA_HOME/bin/startup.sh
              ;;
      esac
      export JAVA_OPTS='-Xms64m -Xmx128m'
      
      
  • # cp /usr/local/tomcat/instance1/ins1.sh /usr/local/tomcat/instance2/ins2.sh

    • #!/bin/bash
      #instance2              
      . /etc/init.d/functions
      export CATALINA_BASE="/usr/local/tomcat/instance2"   
      
      case "$1" in
      start)
              $CATALINA_HOME/bin/startup.sh
              ;;
      stop)
              $CATALINA_HOME/bin/shutdown.sh
              ;;
      restart)
              $CATALINA_HOME/bin/shutdown.sh
              sleep 5
              $CATALINA_HOME/bin/startup.sh
              ;;
      esac
      
      
  • # cp /usr/local/tomcat/instance1/ins1.sh /usr/local/tomcat/instance3/ins3.sh

    • #!/bin/bash
      #instance3
      . /etc/init.d/functions
      export CATALINA_BASE="/usr/local/tomcat/instance3"
      
      case "$1" in
      start)
              $CATALINA_HOME/bin/startup.sh
              ;;
      stop)
              $CATALINA_HOME/bin/shutdown.sh
              ;;
      restart)
              $CATALINA_HOME/bin/shutdown.sh
              sleep 5
              $CATALINA_HOME/bin/startup.sh
              ;;
      esac
      export JAVA_OPTS='-Xms64m -Xmx128m'
      
      
    赋权
  • # chmod +x /usr/local/tomcat/instance1/ins1.sh

  • # chmod +x /usr/local/tomcat/instance2/ins2.sh

  • # chmod +x /usr/local/tomcat/instance3/ins3.sh

网站源码
  • # mkdir /webapps
  • cp -r /usr/local/tomcat/webapps/ROOT/ /webapps/
启动
  • # /usr/local/tomcat/instance1/ins1.sh start
  • # /usr/local/tomcat/instance2/ins2.sh start
  • # /usr/local/tomcat/instance3/ins3.sh start
  • 等5秒
测试
  • # netstat -antp | grep 8081
  • 8082
  • 8083
  • 8091
  • 8092
  • 8093
浏览
  • http://192.168.229.11:8081
  • http://192.168.229.11:8082
  • http://192.168.229.11:8083
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值