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 &