Tomcat基礎及與Nginx實現動靜分離,搭建高效穩定的個人博客系統

目錄

引言

一、TOMCAT基礎功能

(一)自動解壓war包

(二)狀態頁

1.登錄狀態頁

2.遠程登錄

(三)服務管理界面

(四)Host虛擬主機

1.設置虛擬主機

2.建立站點目錄與文件

二、實現動靜分離與負載均衡

(一)配置nginx代理服務器

(二)建立訪問數據文件

(三)使用客戶機進行訪問

三、使用tomcat搭建博客

(一)安裝mysql

1.修改mysql密碼

2.建立數據庫用戶并授予權限

(二)建立博客


引言

在互聯網世界中,網站的性能優化和架構設計至關重要,特別是對于內容驅動型的個人博客而言,合理的資源分配和請求處理策略能夠顯著提升用戶體驗。其中,“動靜分離”是一種常見的服務器部署策略,它將動態內容(如PHP、Java Servlet等生成的內容)和靜態內容(如HTML、CSS、JavaScript、圖片等文件)分由不同的服務器或服務進行處理,從而提高整體性能。本文將詳細介紹如何使用Apache Tomcat與Nginx配合,實現動靜分離,并搭建一個高性能的個人博客系統。

一、TOMCAT基礎功能

(一)自動解壓war包

在配置文件中講到,當接受到請求后,會匹配符合要求的Host,在配置文件中的Host只有一個,且規定了自動解壓war包

自動解壓war包

.war:WebApp打包,類zip格式文件,通常包括一個應用的所有資源,比如jsp,html,配置文件等

.jar:EJB類文件的打包壓縮類zip格式文件,,包括很多的class文件, 網景公司發明

.rar:資源適配器類打包文件,目前已不常用

.ear:企業級WebApp打包,目前已不常用

傳統應用開發測試后,通常打包為war格式,這種文件部署到Tomcat的webapps目錄下,并默認會自動

建立兩個文件,使用jar命令,壓縮文件,并且以.war結尾

移動到該目錄下后,會自動解壓,形成目錄文件

這個主站點目錄比較特殊,在訪問的URL沒有任何上下文的情況下,默認以webapps/ROOT目錄文主站點,如果有其它目錄則以具體URL為主

例如,如果直接訪問your_sever/,則它的默認路徑為webapps/ROOT/idnex文件

如果指定訪問目錄的話,如data,那么它的訪問路徑為webapps/data/*

同在webapps目錄下的兩個目錄下的訪問資源文件內容不一樣

(二)狀態頁

tomcat狀態頁是Apache Tomcat服務器提供的一個管理界面,通過這個頁面可以查看和監控Tomcat運行時的狀態信息。

狀態頁的相關文件也存放在webapps目錄下

可以使用瀏覽器來訪問進行查看

也可以直接輸入/manager/status進行查看。但是會被拒絕訪問

1.登錄狀態頁

需要去修改配置文件,打開conf目錄下tomcat-users.xml文件,并跳轉到最后


?

#這些為注釋的信息。它定義了Tomcat服務器中的角色(roles)和用戶(users),以及這些
#用戶所歸屬的角色。(角色的含義相當于用戶組)<role rolename="tomcat"/> 
#定義了一個名為 "tomcat" 的角色,這個角色可以對應于Tomcat服務器預定義的一些權限,比如
#訪問管理界面或部署應用等。<role rolename="role1"/> 
#定義了一個名為 "role1" 的自定義角色,可以根據實際需求賦予特定權限。<user username="tomcat" password="<must-be-changed>" roles="tomcat"/> 
#定義了一個用戶名為 "tomcat" 的用戶,并設置了初始密碼(這里需要在實際使用時替換為強密碼)
#該用戶歸屬于 "tomcat" 角色,因此擁有與該角色關聯的所有權限。<user username="both" password="<must-be-changed>" roles="tomcat,role1"/> 
#定義了一個用戶名為 "both" 的用戶,同樣設置了初始密碼。這個用戶同時屬于 "tomcat" 
#和 "role1" 兩個角色,因此擁有這兩個角色合并后的所有權限。<user username="role1" password="<must-be-changed>" roles="role1"/> 
#定義了一個僅屬于 "role1" 角色的用戶。

了解這些信息后,將從拒絕界面復制的信息粘貼到配置文件的末尾,而后重啟服務,使配置文件生效

這個時候,就可以使用虛擬機本機的瀏覽器去訪問回環地址登錄狀態頁

登錄之后,就可以看到java虛擬機(JVM)的一些狀態信息

PS Eden Space
'這是年輕代(Young Generation)的一部分,主要用于存儲新創建的對象。當前已使用的內
存大小為210.02 MB,占其總容量(225.50 MB)的約93%。'PS Old Gen
'這是老年代(Old Generation),存放長期存活或晉升過來的對象。當前已使用的內存大小
為25.57 MB,占其總容量(629.50 MB)的4%。'PS Survivor Space
'同樣是年輕代的一部分,用于保存在年輕代中經歷過一次GC但尚未被回收的對象。當前已使用的
內存大小為7.54 MB,占其總容量(45.00 MB)的16%。'Code Cache
'非堆內存區域,用于存儲JIT編譯后的機器碼。當前已使用的內存大小為12.97 MB,占其最大可
擴展容量(240.00 MB)的5%。'Compressed Class Space
'另一個非堆內存區域,當類空間過大時,經過壓縮的類會被存放到此區域以節省內存。當前已使
用的內存大小為6.58 MB,占其最大容量(1024.00 MB)的0%,這里的“0%”可能是顯示錯誤,因
為已經使用了6.58 MB的空間。'Metaspace
'從Java 8開始取代了永久代(PermGen),用于存儲類元數據信息。這里顯示的最大容量為“-0.00 MB”,
這意味著Metaspace的大小可以動態調整,不受固定上限限制;當前已使用的內存大小為54.99 MB'

2.遠程登錄

修改完上面的配置文件后,只能使用本機去登錄回環地址才可以訪問,這也是在配置文件里就已經規定的,想要使用IP地址登錄,還需要去修改manager目錄下的META-INF/context.xml文件

在配置文件中,添加允許通過的字段,修改完畢后重新啟動服務

比如允許192.168.83段的地址去登錄查看狀態頁,就在allow后面加上192.168.83.\d(點前面

的"\表示轉義符)

這個時候再去使用該網段的地址去登錄就可以了

由于狀態頁比較重要,在設置登錄權限時需要注意哪些地址可以訪問,一般不建議開啟遠程登錄

(三)服務管理界面

Apache Tomcat的Manager App界面是一個基于Web的管理工具,用于管理和監控部署在Tomcat服務器上的Web應用程序。訪問路徑為/manager/html

通過Manager App,管理員可以執行以下操作:

  1. 部署應用:上傳WAR文件到Tomcat服務器,并部署為新的Web應用程序。

  2. 重新加載應用:無需停止整個服務器或卸載再部署,即可更新已部署應用的內容。

  3. 啟動和停止應用:控制單個Web應用的啟動與停止狀態。

  4. 刪除應用:從Tomcat服務器中移除已經部署的Web應用程序。

  5. 查看應用列表和狀態:列出所有部署在Tomcat服務器上的Web應用程序及其當前運行狀態(如是否正在運行、部署路徑等信息)

(四)Host虛擬主機

Apache Tomcat中的虛擬主機(Virtual Hosts)是指在同一臺物理服務器上通過不同的域名或IP地址來運行多個獨立的Web應用程序。這種方式使得一個Tomcat實例可以為多個網站提供服務,每個網站對應一個虛擬主機。

1.設置虛擬主機

需要在配置文件(conf/server.xml)中添加Host信息

2.建立站點目錄與文件

使用客戶端進行訪問

二、實現動靜分離與負載均衡

準備五臺服務器與一臺客戶機

客戶機192.168.83.1
NGINX代理服務器192.168.83.50
NGINXweb服務器1192.168.83.30
NGINXweb服務器2192.168.83.40
TOMCAT應用服務器1192.168.83.60
TOMCAT應用服務器2192.168.83.100

(一)配置nginx代理服務器

1.首先定義好地址池

默認輪詢權重為1:1

2.區分不同類型的文件進行代理

(二)建立訪問數據文件

tomcat服務默認訪問的界面為安裝路徑下的/webapps/ROOT/的index.jsp文件,為了區分,自定義一個index.jsp文件內容

(三)使用客戶機進行訪問

三、使用tomcat搭建博客

(一)安裝mysql

安裝好tomcat后安裝mysql數據庫,由于本地yum的mysql安裝包版本比較老舊,所以不推薦直接使用yum安裝,可以自己搭建一個yum倉庫

而后再使用yum安裝,需要注意安裝包的名字不要輸錯:

yum -y install mysql-community-server

1.修改mysql密碼

在之前介紹LNAP的時候,就將講解過如何修改密碼,但是之前是編譯安裝,只是安裝一些基礎功能,一些安全環境與優化,沒有yum做的全,比如初始密碼,編譯安裝的時候初始密碼為空,而yum安裝是有初始密碼的

可以使用grep過濾錯誤日志中的關鍵字進行查看

這個密碼是隨機生成的,有時候會有一些特殊字符,在使用該密碼登錄的時候,需要使用引號,將密碼引起來

登錄進去之后,可以修改密碼,或者直接使用mysqladmin -u root -p password修改密碼

但在修改密碼前需要了解validate_password_policy 和 validate_password_length這兩個參數

validate_password_policy:?這個參數用于指定密碼驗證策略的嚴格程度。其可選值包括0、1和2,默認值根據MySQL版本的不同可能會有所變化。值的含義如下:

0:只檢查密碼長度。
1(默認):檢查密碼長度以及字符種類(數字、小寫字母、大寫字母和特殊字符)。
2:最嚴格的策略,除了長度和字符種類外,還增加了其他復雜度要求,例如禁止使用常見密碼。

validate_password_length 設置全局密碼最小長度

2.建立數據庫用戶并授予權限

(二)建立博客

需要將博客系統的壓縮包放在tomcat服務默認的站點目錄下

此時就可以使用瀏覽器去訪問博客系統了

輸入創建的數據庫、用戶及密碼

設置網站名稱信息與創建管理員用戶

登錄管理員賬號

這個時候就可以進行編輯管理文章等一些列操作了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715753.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用QEMU搭建U-Boot+LinuxKernel+busybox+NFS嵌入式開發環境

目錄 0.課程大綱1.為什么要使用QEMU學習嵌入式QEMU簡介使用QEMU可以做哪些事情?當前嵌入式行業現狀如何適應這種變化使用QEMU學習嵌入式有哪些好處?驅動開發技能為什么要學習Linux 2.搭建嵌入式開發基本環境2.1.安裝u-boot-tools2.2.安裝交叉編譯工具什么是ABI和EABI 3.QEMU安…

三、基準時鐘、生成時鐘、虛擬時鐘的約束和意義

**前言&#xff1a;**前面從理論角度出發學習了時序分析的基本原理&#xff0c;本篇從設計的角度學習如何合理添加時鐘約束。 文章目錄 一、基準時鐘&#xff08;base clock&#xff09;和生成時鐘(generate clock)二、基準時鐘的約束1.完成綜合&#xff08;run implementatio…

linux的通信方案(SYSTEM V)

文章目錄 共享內存(Share Memory)信號隊列&#xff08;Message Queue&#xff09;信號量(semaphore) 進程間通信的核心理念&#xff1a;讓不同的進程看見同一塊資源 linux下的通信方案&#xff1a; SYSTEM V 共享內存(Share Memory) 特點&#xff1a;1.共享內存是進程見通信最…

排序(4)——堆排序

目錄 堆排序&#xff08;回顧&#xff09; 基本思路 代碼實現 向下調整排序 AdjustDown 建堆排序 時間復雜度 特性總結 堆排序&#xff08;回顧&#xff09; 重點回顧戳&#x1f449;堆排序 基本思路 堆排序(Heapsort)是指利用堆積樹&#xff08;堆&#xff09;這種數…

SOCKS5代理、代理IP與網絡安全的奇妙旅程

在數字時代&#xff0c;互聯網安全和隱私成為了熱門話題。從個人瀏覽習慣到企業數據保護&#xff0c;每個人都希望他們的在線活動既安全又私密。在這個背景下&#xff0c;了解SOCKS5代理、代理IP、HTTP協議和網絡安全的基礎知識變得尤為重要。 什么是SOCKS5代理&#xff1f; SO…

鴻蒙系統開發適配注意事項

鴻蒙操作系統&#xff08;HarmonyOS&#xff09;的軟件適配涉及到一些特定的注意事項&#xff0c;以確保應用程序在該操作系統上的正常運行和最佳性能。以下是適配鴻蒙軟件時需要注意的一些關鍵問題&#xff0c;希望對大家有所幫助。北京木奇移動技術有限公司&#xff0c;專業的…

MySQL篇—執行計劃介紹(第二篇,總共三篇)

??博主介紹??&#xff1a; ?又是一天沒白過&#xff0c;我是奈斯&#xff0c;DBA一名? ???擅長Oracle、MySQL、SQLserver、Linux&#xff0c;也在積極的擴展IT方向的其他知識面??? ??????大佬們都喜歡靜靜的看文章&#xff0c;并且也會默默的點贊收藏加關注?…

Python 編輯工具 Jupyter notebook

Jupyter notebook Jupyter Notebook是基于網頁的用于交互計算的應用程序。其可被應用于全過程計算&#xff1a;開發、文檔編寫、運行代碼和展示結果。——Jupyter Notebook官方介紹 官網&#xff1a;Project Jupyter | Home Jupyter Notebook 是一個開源的交互式計算環境&#…

dockerdocker-copose_限制容器cpu和內存

本文目錄 docker的限制方式限制CPU占用限制內存占用 docker-compose docker的限制方式 限制CPU占用 Docker使用--cpus參數來限制容器的CPU資源。該參數指定了分配給容器的CPU核心數量或百分比。 例子&#xff1a;限制CPU使用個數 docker run --cpus2 <imageName>以上…

網頁版圖像處理軟件開發服務:助您項目在市場競爭中脫穎而出

在當今數字化時代&#xff0c;圖像處理在各個行業中扮演著重要的角色&#xff0c;虎克專注于提供定制化的網頁版圖像處理軟件開發服務&#xff0c;為您的項目保駕護航。 1.網頁版圖像處理軟件的定制化需求 1.1行業特定功能 針對不同的業務需求&#xff0c;深入了解行業特點&…

springboot基于web的酒店客房管理系統論文

基于web的酒店客房管理系統 摘要 隨著信息技術在管理上越來越深入而廣泛的應用&#xff0c;管理信息系統的實施在技術上已逐步成熟。本文介紹了酒店客房管理系統的開發全過程。通過分析酒店客房管理系統管理的不足&#xff0c;創建了一個計算機管理酒店客房管理系統的方案。文…

Redis 之八:Jdeis API 的使用(Java 操作 Redis)

Jedis API 使用 Jedis 是 Redis 官方推薦的 Java 客戶端&#xff0c;它提供了一套豐富的 API 來操作 Redis 服務器。通過 Jedis API&#xff0c;開發者可以方便地在 Java 應用程序中執行 Redis 的命令來實現數據的增刪查改以及各種復雜的數據結構操作。 以下是一些基本的 Jedis…

springboot網站開發-idea開發環境下無法開啟調試Debug模式

springboot網站開發-idea開發環境下無法開啟調試Debug模式的解決辦法。 近期在寫后端代碼的時候&#xff0c;發現&#xff0c;無法開啟調試模式。網上查詢了一下資料&#xff0c;發現需要做如下修改即可開啟調試模式。 如圖所示&#xff0c;把里面的選項&#xff0c;都放棄勾選…

SQLPro Studio:數據庫管理的革命性工具 mac版

SQLPro Studio是一款強大的數據庫管理和開發工具&#xff0c;它旨在提供高效、便捷和安全的數據庫操作體驗。無論是數據庫管理員、開發人員還是數據分析師&#xff0c;SQLPro Studio都能滿足他們在數據庫管理、查詢、設計和維護方面的需求。 SQLPro Studio mac版軟件獲取 首先…

B樹系列(詳解)

目錄 一、B-樹 二、B樹 三、B*樹 四、時間復雜度 五、Mysql與B樹系列 一、B-樹 首先再說B樹的性質以及其他的之前&#xff0c;先要說一聲&#xff0c;好多人都把這個樹叫B減樹&#xff0c;其實不是&#xff0c;他就叫B樹&#xff0c;至于原因我覺的沒必要再這個名字上糾結…

docker 轉為docker-compose(composerize 命令)

可以使用Composerize將Docker命令轉換為Docker Compose文件。 例如&#xff1a;將docker run命令轉換為Docker Compose格式&#xff0c;只需用Composerize運行它&#xff0c;如下所示&#xff1a; composerize docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/…

【JavaSE】異常

異常概述 異常指的是程序在執行的過程中&#xff0c;出現的非正常情況&#xff0c;如果不處理最終會導致JVM的非正常停止。 在Java中&#xff0c;使用不同的類來表示不同的異常&#xff08;正所謂萬物皆對象&#xff0c;因此異常也使用類來表示&#xff09;。一旦程序出現某種…

【HTML】HTML基礎5(特殊字符)

目錄 特殊字符的作用 常用的特殊字符 使用效果 特殊字符的作用 例如 當我在兩個文字間打出空格時 <p>“銀河護衛隊”系列 在漫威電影宇宙中一直是異數般的存在&#xff0c;不僅因為影片主角是一群反英雄&#xff0c;<strong>與超級英雄相比顯得格格不入<…

讀書筆記-三國演義-三英戰呂布

三英戰呂布是《三國演義》中的一段著名戰役&#xff0c;張飛、關羽和劉備三兄弟聯手擊敗了當時的霸主呂布&#xff0c;展現了他們的武藝和忠義。 介紹 "三英戰呂布"是《三國演義》中的一個著名戰役&#xff0c;發生在三國時期&#xff0c;講述了三位蜀漢名將——劉…

LeetCode 刷題 [C++] 第347題.前 K 個高頻元素

題目描述 給你一個整數數組 nums 和一個整數 k &#xff0c;請你返回其中出現頻率前 k 高的元素。你可以按 任意順序 返回答案。 題目分析 據題意可知&#xff0c;我們需要先遍歷整個數組&#xff0c;并統計每個數字出現的次數&#xff0c;保存在哈希表中&#xff1b;對元素…