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
英文地址,請注明出處:http://en.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…