day46-tomcat-java业务部署

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 &

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87844.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[netty5: HttpServerCodec HttpClientCodec]-源码分析

在阅读该篇文章之前,推荐先阅读以下内容: [netty5: ChannelHandler & ChannelHandlerAdapter]-源码解析[netty5: HttpObjectEncoder & HttpObjectDecoder]-源码解析 HttpServerCodec HttpServerCodec 是一个 Netty 编解码器,结合 …

华为OD机试 2025B卷 - 数组组成的最小数字(C++PythonJAVAJSC语言)

2025B卷目录点击查看: 华为OD机试2025B卷真题题库目录|机考题库 + 算法考点详解 2025B卷 100分题型 最新华为OD机试 真题目录:点击查看目录 华为OD面试真题精选:点击立即查看 2025华为od 机试2025B卷-华为机考OD2025年B卷 题目描述 给定一个整型数组,请从该数组中选…

Ubuntu下Tomcat的配置

进入Tomcat的conf目录下 1 备份配置文件 cp server.xml server.xml.2下载server.xml&#xff0c;用notepad文本编辑器打开 2 修改Tomcat的端口号 找到如下内容<Connector port"8080" protocol"HTTP/1.1"connectionTimeout"20000"redirectPort…

Docker部Ollama安装、本地大模型配置与One-API接入

Docker 安装 Ollama Ollama 支持 Docker 安装,极大简化了部署流程。以下是具体步骤: 创建ollama文件夹 创建 docker-compose.yaml 文件新建一个 docker-compose.yaml 文件,内容如下: 编辑文件 …

ABB焊接机器人智能节气仪

在现代焊接工业中&#xff0c;ABB焊接机器人凭借其高精度、高效率等优势被广泛应用。而在焊接过程中&#xff0c;节气是一个重要的考量因素&#xff0c;这就凸显出ABB焊接机器人智能节气仪的重要性。ABB焊接机器人节气是提高焊接生产效益的关键环节。传统的焊接过程中&#xff…

摄影后期:使用Photoshop进行暗角控制

方法一&#xff1a;ctrlshiftR调出镜头校正工具&#xff0c;调整晕影 方法二&#xff1a;

pyhton基础【24】面向对象进阶五

目录 十五.多继承的继承顺序 - mro 调用父类方式不同导致结果不同 单继承中的super 简单总结 面试题 十六.魔术方法 魔术方法概述 魔术方法概览 __getattribute__属性 __getattribute__注意事项 常用的魔术方法 __doc__ __module__和__class__ __init__ __del__…

如何保障MySQL客户端连接数据库安全更安全

公司员工或外协人员&#xff0c;直接使用业务账号或高权限账号连接MySQL服务器&#xff0c;如同让数据在连接时减少风险——账号密码易泄露、操作行为难追溯、安全风险陡增&#xff01;尤其是在客户端连接环节&#xff0c;如何确保每一个接入点都安全可控&#xff0c;每一次操作…

机器学习入门:线性回归详解及Scikit-learn API使用指南

一、线性回归概述线性回归是统计学和机器学习领域中最基础、最广泛应用的预测建模技术之一。自19世纪初由弗朗西斯高尔顿(Francis Galton)首次提出以来&#xff0c;线性回归已成为数据分析的核心工具&#xff0c;在经济学、社会科学、生物统计学、工程学等众多领域发挥着重要作…

高斯牛顿法求解三维变换矩阵的数学推导

目录一、问题定义二、李代数基础三、雅可比矩阵推导四、高斯牛顿迭代1. 整体雅可比矩阵2. 正规方程构建3. 参数更新4. 李代数更新五、理论优势分析一、问题定义 给定两组三维点云&#xff1a;源点云 P{pi∈R3}i1NP \{p_i \in \mathbb{R}^3\}_{i1}^NP{pi​∈R3}i1N​&#xff0…

JAVA 商城系统为什么受欢迎?ZKmall开源商城灵活定制 + 插件接入适配市场

在电商系统开发这块&#xff0c;技术选得好不好&#xff0c;直接关系到平台稳不稳定、能不能扩展、适配能力强不强。JAVA 语言因为 “跨平台性突出、安全性高、可扩展性好” 这些特点&#xff0c;成了企业级电商系统的首选技术。而 ZKmall 商城基于 JAVA 开发的商城系统&#x…

【数据结构之哈夫曼树与编码实现】

文章目录 前言一、哈夫曼树与哈夫曼编码简介1. 什么是哈夫曼树&#xff1f;2. 为什么需要哈夫曼编码&#xff1f; 二、哈夫曼编码原理三、哈夫曼树的构建步骤详解1. 统计字符频率2. 定义哈夫曼树节点3. 最小堆&#xff08;优先队列&#xff09;的构造4. 合并节点&#xff0c;构…

基于Hadoop的京东厨具商品数据分析及商品价格预测系统的设计与实现

文章目录有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍数据采集用户界面系统展示管理员界面每文一语有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍 本项目围绕“京东厨具数据分析系统的设计与实…

深入解析TCP:可靠传输的核心机制与实现逻辑(三次握手、四次挥手、流量控制、滑动窗口、拥塞控制、慢启动、延时应答、面向字节流、粘包问题)

Linux系列 文章目录 Linux系列一、TCP连接的建立与断开1.1 TCP 三次握手1.2 TCP四次挥手1. TCP连接的本质是应用层间的通信通道2. 断开连接的核心是终止应用层通信3. 常见误解澄清 二、TCP协议的机制2.1 流量控制2.2 滑动窗口2.2.1 滑动窗口的工作原理2.2.2 基于滑动窗口快重传…

基于开源AI智能客服、AI智能名片与S2B2C商城小程序的微商服务质量提升路径研究

摘要&#xff1a;在科技飞速发展的背景下&#xff0c;产品技术含量与复杂度显著提升&#xff0c;客户正确使用产品并体验其价值愈发依赖代理的专业指导与服务。本文聚焦开源AI智能客服、AI智能名片与S2B2C商城小程序在微商服务中的应用&#xff0c;通过分析其技术原理与实践案例…

[netty5: HttpHeaders HttpHeadersFactory]-源码分析

HttpHeaders HttpHeaders 是用于存储和操作HTTP请求或响应头部字段的接口。 // DefaultHttpHeaders, HttpHeadersFactory.TrailingHttpHeaders public interface HttpHeaders extends Iterable<Entry<CharSequence, CharSequence>> {static HttpHeaders emptyHead…

基于Flink 1.20、StarRocks与TiCDC构建高效数据处理链路教程

在大数据处理领域&#xff0c;实现高效、实时的数据处理与分析至关重要。Flink作为强大的流批一体化计算框架&#xff0c;结合StarRocks这一高性能的实时分析型数据库&#xff0c;再搭配TiCDC&#xff08;TiDB Change Data Capture&#xff09;用于捕获数据变更&#xff0c;能够…

便捷的Office批量转PDF工具

软件介绍 本文介绍的软件是一款能实现Office批量转换的工具&#xff0c;名为五五Excel word批量转PDF。 软件小巧 这款五五Excel word批量转PDF软件大小不到2M。 操作步骤一 使用该软件时&#xff0c;只需把软件和需要转换的Word或Excel文件放在同一个文件夹里。 操作步骤…

tcp长连接与短连接

TCP连接本身是一个传输层协议&#xff0c;它既可以实现长连接&#xff0c;也可以实现短连接。这取决于应用层的使用方式。 短连接&#xff08;Short Connection&#xff09; 特点&#xff1a;每次请求都建立新的TCP连接&#xff0c;完成后立即关闭流程&#xff1a;建立连接 →…

llvm polly,亲自测试

1&#xff09;下载并安装 Polly - Getting Started git clone https://github.com/llvm/llvm-project.git 大概需要半个小时&#xff0c;有时候被墙掉就打不开 2&#xff09; mkdir build && cd build cmake -DLLVM_ENABLE_PROJECTSclang;polly ../llvm cmake --b…