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.rpm2.安装完检查
[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/tomcat3.检查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 Corporation4.检查8080端口是否被占用
ss -lntup | grep 80805.启动tomcat
/app/tools/tomcat/bin/startup.sh6.检查
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-devel2.安装完检查
[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/tomcat3.检查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: BiSheng4.检查8080端口是否被占用
ss -lntup | grep 80805.启动tomcat
/app/tools/tomcat/bin/startup.sh6.检查
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.target2.重新加载service文件
[root@web03 ~]# systemctl daemon-reload3.关闭原来的java进程
[root@web03 ~]# pkill java4.设置下次开机启动tomcat
[root@web03 ~]# systemctl enable tomcat5.启动tomcat
[root@web03 ~]# systemctl start tomcat6.查看进行
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.out02-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.jsp4.查看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} ];thenif [ -z ${pid} ];thencd ${dir}nohup java -jar -Dfile.encoding=UTF-8 ${service} --server.port=${port} --project.home=${dir} >/dev/null 2>&1 &if [ $? -eq 0 ];thenlogmsg [${time}] start [ok] ${service}elselogmsg [${time}] start [filed] ${service}fifielseexitfireturn $?
}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 ];thenkill ${pid}if [ $? -eq 0 ];thenlogmsg [${time}] stop [ok] [${service}]elselogmsg [${time}] stop filed [${service}]fifi
}function srv_restart() {srv_stopsleep 1srv_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 ];thenecho "running pid:[${pid}] ${service}"logmsg [${time}] running pid:[${pid}] ${service}elseecho "stoped ${service}"logmsg [${time}] stoped ${service}fi
}#3.case
case "${choose}" instart) 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.jar2.放到linux服务器上运行
nohup java -Xmx1024M -Xms1024M -jar server.jar nogui &