day46-tomcat-java业务部署

发布于:2025-07-05 ⋅ 阅读:(20) ⋅ 点赞:(0)

1. ✅选型

1.1. 🎯中间件

java web中间件

说明

tomcat

组件,功能多

jetty

精简,功能少一些

......

weblogic

使用oracle数据库配合weblogic(商业)

国产:东方通(TongWEB)

1.2. 📌jdk

jdk选型

说明

jdk(oracle jdk)

商业版,jdk 202之前免费,211之后收费

openjdk

开源版本(yum,apt源里有)

厂商jdk 华为 毕昇jdk

根据厂商选择

  • 经典jdk版本是jdk8
  • jdk 11 17 21
LTS 长期支持版本
Java SE 11 (LTS)
Java SE 17 (LTS)
Java SE 21 (LTS)
  • 具体使用哪个版本?
    • 根据代码要求

1.3. 🐹tomcat版本

tomcat版本

jdk版本

tomcat 9

jdk 8以上

tomcat 10

jdk 11以上

tomcat 11

jdk 17以上

2. ✅急速上手指南

2.1. 📝环境准备

角色

主机

ip

jdk oracle jdk

web03

10.0.0.9/172.16.1.9

openjdk(11)

web04

10.0.0.10/172.16.1.10

2.2. 💡安装jdk(web03)

1.安装jdk开发环境
rpm -ivh jdk-8u441-linux-x64.rpm

2.安装完检查
[root@web03 ~]# java -version
java version "1.8.0_441"
Java(TM) SE Runtime Environment (build 1.8.0_441-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.441-b07, mixed mode)

2.3. 🐹安装tomcat(web03)

1.解压
tar xf apache-tomcat-9.0.106.tar.gz -C /app/tools/

2.创建软链接
ln -s /app/tools/apache-tomcat-9.0.106/ /app/tools/tomcat

3.检查tomcat版本
[root@web03 ~]# /app/tools/tomcat/bin/version.sh 
Using CATALINA_BASE:   /app/tools/tomcat
Using CATALINA_HOME:   /app/tools/tomcat
Using CATALINA_TMPDIR: /app/tools/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Server version: Apache Tomcat/9.0.106
Server built:   Jun 5 2025 19:02:30 UTC
Server number:  9.0.106.0
OS Name:        Linux
OS Version:     4.19.90-52.22.v2207.ky10.x86_64
Architecture:   amd64
JVM Version:    1.8.0_441-b07
JVM Vendor:     Oracle Corporation

4.检查8080端口是否被占用
ss -lntup | grep 8080

5.启动tomcat
/app/tools/tomcat/bin/startup.sh

6.检查
ps -ef | grep tomcat
ss -lntup | grep 8080

2.4. 🌏浏览器访问

http://10.0.0.9:8080

2.5. 💡安装openjdk(web04)

1.安装openjdk 11
yum -y install java-11-openjdk java-11-openjdk-devel

2.安装完检查
[root@web04 ~]# java -version
openjdk version "11.0.27" 2025-04-15
OpenJDK Runtime Environment BiSheng (build 11.0.27+6)
OpenJDK 64-Bit Server VM BiSheng (build 11.0.27+6, mixed mode, sharing)
[root@web04 ~]# 

2.6. 🐹安装tomcat(web04)

1.解压
tar xf apache-tomcat-9.0.106.tar.gz -C /app/tools/

2.创建软链接
ln -s /app/tools/apache-tomcat-9.0.106/ /app/tools/tomcat

3.检查tomcat版本
[root@web04 ~]# /app/tools/tomcat/bin/version.sh 
Using CATALINA_BASE:   /app/tools/tomcat
Using CATALINA_HOME:   /app/tools/tomcat
Using CATALINA_TMPDIR: /app/tools/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/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.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=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
Server version: Apache Tomcat/9.0.106
Server built:   Jun 5 2025 19:02:30 UTC
Server number:  9.0.106.0
OS Name:        Linux
OS Version:     4.19.90-52.22.v2207.ky10.x86_64
Architecture:   amd64
JVM Version:    11.0.27+6
JVM Vendor:     BiSheng

4.检查8080端口是否被占用
ss -lntup | grep 8080

5.启动tomcat
/app/tools/tomcat/bin/startup.sh

6.检查
ps -ef | grep tomcat
ss -lntup | grep 8080

3. ✅tomcat目录

目录

主要文件

说明

bin

tomcat的管理脚本

startup.sh 启动脚本

shutdow.sh 关闭脚本

catalina.sh做jvm优化修改这个文件

conf

server.xml 主要配置文件

logging.properties日志功能配置文件

server.xml主要配置

lib

lib(library) tomcat依赖的目录

一般是.jar结尾

logs

日志

catalina.out应用日志,业务日志

一般看业务/应用日志.关键词error,failed,exception(异常)

webapps

站点目录

work

加载jvm中的文件信息

4. ✅systemctl管理tomcat

1.编写service文件
[root@web03 ~]# systemctl cat tomcat.service 
# /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat  java web container 
After=network.target 

[Service]
Type=forking
#EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=/app/tools/tomcat/bin/startup.sh
ExecStop=/app/tools/tomcat/bin/shutdown.sh


[Install]
WantedBy=multi-user.target

2.重新加载service文件
[root@web03 ~]# systemctl daemon-reload

3.关闭原来的java进程
[root@web03 ~]# pkill java

4.设置下次开机启动tomcat
[root@web03 ~]# systemctl enable  tomcat

5.启动tomcat
[root@web03 ~]# systemctl start tomcat

6.查看进行
ps -ef | grep java
ss -lntup | grep java

5. ✅java业务部署

  • java的源代码-->编译(打包)-->war包或jar包
  • war包一般需要tomcat jdk tomcat+war
  • jar包直接运行(jar包内部塞了一个tomcat或jetty......)jdk+jar OK
  • java -jar xxx.jar 启动应用(业务)其他选项

5.1. 🐹war包部署

1.将war包放到站点目录下
/app/tools/tomcat/webapps/

2.查看日志
tail -f /app/tools/tomcat/logs/catalina.out

02-Jul-2025 12:18:48.584 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployWAR 正在部署web应用程序存档文件[/app/tools/apache-tomcat-9.0.106/webapps/memtest.war]
02-Jul-2025 12:18:48.669 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployWAR web应用程序存档文件[/app/tools/apache-tomcat-9.0.106/webapps/memtest.war]的部署已在[84]ms内完成

3.浏览器访问
http://10.0.0.9:8080/memtest/meminfo.jsp

4.查看work目录
tree -F /app/tools/tomcat/work/

5.2. 🍀jar包部署

  • 运行的时候在jar包所在目录(相对路径)
#前台运行(测试)
java -jar -Dfile.encoding=UTF-8 nginxWebUI-3.4.0.jar --server.port=8848 --project.home=/app/code/ngx/

#后台运行(正式)或交给systemctl运行 

nohup java -jar -Dfile.encoding=UTF-8 nginxWebUI-3.4.0.jar --server.port=8848 --project.home=/app/code/ngx/ &

#忘记密码
1.删除h2.mv.db文件
2.kill pid结束java进程
3.重新运行jar包

5.3. 🔄开机自启动

  • 步骤
1.书写jar包管理脚本
bash /server/scripts/ngxwebui.sh start
运行nohup java -jar -Dfile.encoding=UTF-8 nginxWebUI-3.4.0.jar --server.port=8848 --project.home=/app/code/ngx/ &

bash /server/scripts/ngxwebui.sh stop
关闭指定的服务

bash /server/scripts/ngxwebui.sh restart
先关闭然后再启动服务

bash /server/scripts/ngxwebui.sh status
检查是否运行

2.systemctl调用脚本
[Unit]
Description=ngx webui
After=network.target 
[Service]
Type=forking
#EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=bash /server/scripts/ngxwebui.sh start
ExecStop=bash /server/scripts/ngxwebui.sh stop
ExecRestart=bash /server/scripts/ngxwebui.sh restart
[Install]
WantedBy=multi-user.target
  • 脚本
#!/bin/bash
##############################################################
# File Name:ngxwebui.sh
# Version:V1.0
# Author:zbl
# Organization:zhubaolin.blog.csdn.net
# Desc:
##############################################################

#1.vars
service=nginxWebUI-3.4.0.jar
port=8848
dir=/app/code/ngx/
choose=$1
logfile=${dir}nginxWebUI.log
time=`date +%F_%T`
jar_file=/app/code/ngx/${service}

#2.function
function logmsg() {
  msg="$*"
  echo "${msg}" >> ${logfile}
}

function srv_start() {
  pid=`ps -ef | grep -w nginxWebUI | grep -v grep | awk '{print $2}'`
  pidcount=`ps -ef | grep -w nginxWebUI | grep -v grep | awk '{print $2}' | wc -l`
  if [ -f ${jar_file} ];then
    if [ -z ${pid} ];then
      cd ${dir}
      nohup java -jar -Dfile.encoding=UTF-8 ${service} --server.port=${port} --project.home=${dir} >/dev/null 2>&1 &
      if [ $? -eq 0 ];then
        logmsg [${time}] start [ok] ${service}
      else
        logmsg [${time}] start [filed] ${service}
      fi
    fi
  else
    exit
  fi
  return $?
}

function srv_stop() {
  pid=`ps -ef | grep -w nginxWebUI | grep -v grep | awk '{print $2}'`
  pidcount=`ps -ef | grep -w nginxWebUI | grep -v grep | awk '{print $2}' | wc -l`
  if [ ${pidcount} -gt 0 ];then
    kill ${pid}
    if [ $? -eq 0 ];then
      logmsg [${time}] stop [ok] [${service}]
    else
      logmsg [${time}] stop filed [${service}]
    fi
  fi
}

function srv_restart() {
  srv_stop
  sleep 1
  srv_start
}

function srv_status() {
  pid=`ps -ef | grep -w nginxWebUI | grep -v grep | awk '{print $2}'`
  pidcount=`ps -ef | grep -w nginxWebUI | grep -v grep | awk '{print $2}' | wc -l`
  if [ ${pidcount} -ge 1 ];then
    echo "running pid:[${pid}] ${service}"
    logmsg [${time}] running pid:[${pid}] ${service}
  else
    echo "stoped ${service}"
    logmsg [${time}] stoped  ${service}
  fi
}

#3.case
case "${choose}" in
  start) srv_start ;;
  stop) srv_stop ;;
  restart) srv_restart ;;
  status) srv_status ;;
  *) echo input error
esac

5.4. 🌏zrlog部署

tomcat处理动态,静态,处理动态请求性能好

环境

说明

web03

jdk+tomcat

db01

mariadb(zrlog库,zrlog用户 密码)

1.准备数据库
create database zrlog;
grant all on zrlog.* to 'zrlog'@'172.16.1.%' identified by 'lidao';

2.部署war包
mv zrlog.war /app/tools/tomcat/webapps/

3.浏览器访问
用户界面:
http://10.0.0.9:8080/zrlog
管理界面:
http://10.0.0.9:8080/zrlog/admin/login

6. ✅部署(我的世界)

1.在官网下载我的世界jar包
https://piston-data.mojang.com/v1/objects/05e4b48fbc01f0385adb74bcff9751d34552486c/server.jar

2.放到linux服务器上运行
nohup java -Xmx1024M -Xms1024M -jar server.jar nogui &