Nginx+Tomcat 負載均衡群集

目錄

一,部署Tomcat

1,案例概述

2,案例前置知識點

(1)Tomcat簡介

(2)應用場景

3,案例實施

3.1,實施準備

(1)關閉firewalld防火墻

(2)在安裝Tomcat之前必須先安裝JDK

3.2,查看JDK是否安裝

3.3,安裝配置Tomcat

(1)Tomcat的安裝和配置步驟

?編輯

3.4,Tomcat配置相關說明

(1)主要目錄說明

(2)配置文件說明

3.5,Tomcat主配置文件說明

3.6,Tomcat Server的組成部分說明

(1)Server

(2)Service

(3)Connector

(4)Engine

(5)Host

(6)Context

3.7,建立Java的web站點

(1)在根目錄下建立一個web目錄,并在里面建立一個webapp1 目錄,用于存放網站文件。

二,案例Nginx+Tomcat

1,安裝Nginx(略)

2,修改配置文件


一,部署Tomcat

1,案例概述

京北點指科技有限公司發布V3版移聯建站管理系統,該項目為Java語開發的Web站點。目前,BM的WebSphere及Oracle的WebLogic 占據了市面上Java語言Web站點的大部分份額。這兩種軟件以其無與倫比的性能及可靠性等優勢被廣泛應用于大型互聯網公司的Web場景中,但是其高昂的價格也使得小型互聯網公司對此而卻步。
Tomcat自5.x版本以來,其性能上已經得到了大幅的提升,再加上其開放性的框架和可二次開發等特性,已經完全可以用在訪問量不是很大的生產環境下。目前,大多數用于JSP技術開發的電子商務網站基本應用了Tomcat,而且Tomcat的Servlet和JSP這兩種API也完全可以適用于V3版移聯建站管理系統。

2,案例前置知識點

(1)Tomcat簡介

名稱由來:Tomcat最初是由Sun的軟件構架師詹姆斯·鄧肯·戴維森開發的。后來他幫助將其變為開源項目,并由Sun貢獻給Apache軟件基金會。由于大部分開源項目0'Reilly都會出一本相關的書,并且將其封面設計成某個動物的素描,因此他希望將此項目以一個動物的名字命名。因為他希望這種動物能夠自己照顧自己,最終,他將其命名為Tomcat(公貓)。而0'Reilly出版的介紹Tomcat 的書籍的封面也被設計成了一個公貓的形象。而Tomcat的Logo兼吉祥物也被設計成了一只公貓。
其實Tomcat在開始研發的時候并不叫這個名字,早期Tomcat 項目的名字叫Catalina,所以當我們安裝完Tomcat后會發現安裝路徑下面有很多和Catalina有關的目錄和文件,而這些文件通常也是我們使用或者配置Tomcat 的重要文件。

(2)應用場景

Tomcat服務器是一個免費的開放源代碼的Web應用服務器,屬于輕量級應用服務在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSPa!程序的首選。一般來說,Tomcat雖然和Apache或者Nginx這些Web服務器一樣,具有處理HTML頁面的功能,然而由于其處理靜態HTML的能力遠不及Apache或者所以Tomcat通常是作為一個Servlet和JSP容器,單獨運行在后端,如Nginx,圖 5.1 所示。

3,案例實施

3.1,實施準備

(1)關閉firewalld防火墻
systemctl stop firewalld
setenforce 0
(2)在安裝Tomcat之前必須先安裝JDK

JDK的全稱是JavaDevelopment Kit,是Sun 公司免費提供的 Java 語言的軟件開發工具包,其中包含Java虛擬機(JVM)。編寫好的Java 源程序經過編譯可形成Java字節碼,只要安裝了JDK,就可以利用JVM解釋這些字節碼文 件,從而保證了Java 的跨平臺性。
在平臺兼容性方面,JDK作為解釋字節碼文件并據此調用操作系統API實現對應功Java 虛擬機,與操作系統類型和平臺位數密切相關,因此存在不同類型的版本,而Tomcat 也具有上述特征,默認情況下JDK已經安裝,所以需要預先下載Tomcat,本章中所使用的 Tomcat 軟件的源碼包為 apache-tomcat-9.0.8.tar.gz。

3.2,查看JDK是否安裝

java -version

3.3,安裝配置Tomcat

(1)Tomcat的安裝和配置步驟
tar xf apache-tomcat-9.0.8.tar.gz
mv apache-tomcat-9.0.8/ /usr/local/tomcat
cd /usr/local/tomcat/bin/startup.sh
netstat -anpt | grep 8080

3.4,Tomcat配置相關說明

ll /usr/local/tomcat/
(1)主要目錄說明

bin/:存放Windows或Linux平臺上啟動和關閉Tomcat 的腳本文件。

conf/:存放Tomcat服務器的各種全局配置文件,其中最重要的是server.xml 和
web.xml.

lib/:存放Tomcat運行需要的庫文件(JARS)。

logs:存放Tomcat 執行時的LOG文件。

webapps:Tomcat的主要Web發布目錄(包括應用程序樂例)-

work:存放JSP編譯后產生的class文件。

(2)配置文件說明

執行“11conf/”命令,便可看到配置文件清單。

ll /usr/local/tomcat/conf
catalina.policy:權限控制配置文件。
catalina.properties:Tomcat 屬性配置文件:
context.xml:上下文配置文件。
logging.properties:日志log 相關配置文件。
server.xml:主配置文件。
tomcat-users.xml:manager-gui管理用戶配置文件(Tomcat安裝后提供一個managergui 的管理界面,通過配置該文件可以開啟訪問)。
web.xml:Tomcat的servlet、servlet-mapping、filter、MIE 等相關配置

3.5,Tomcat主配置文件說明

server.xml為Tomcat的主要配置文件,通過配置該文件,可以修改Tomcat的啟動端 口、網站目錄、虛擬主機、開啟 https 等重要功能。
整個 server.xml 由以下結構構成:<Server>、<Service>、<Connector />、<Engine><Host>、<Context>、</Context〉、</Host〉、</Engine〉、</Service>和</Server>以下是默認安裝后server.xml文件的部分內容,其中<!---->內的內容是注釋信息,黑色斜體部分是需要注意和需要經常更改的部分。

3.6,Tomcat Server的組成部分說明

Tomcat Server 由Server、Service、Connector、Engine、Host和Context 組成。

(1)Server

Server元素代表了整個Catalina的servlet容器

(2)Service

Service 是這樣一個集合:它由一個或者多個Connector,以及一個Engine(負責處理所有Connector所獲得的客戶請求)組成。

(3)Connector

一個Connector在某個指定端口上偵聽客戶請求,并將獲得的請求交給Engine來處理,從Engine 處獲得回應并返回客戶。

Tomcat有兩個典型的Connector,一個直接偵聽來自browser的http請求,一個偵聽來自其他WebServer 的請求。
Coyote Http/1.1Connector在端囗8080處偵聽來自客戶browser的http 請求

(4)Engine

Engine 下可以配置多個虛擬主機Virtual Host,每個虛擬主機都有一個域名。當Engine 獲得一個請求時,它把該請求匹配到某個Host上,然后把該請求交給該 Host來處理。

Engine 有一個默認虛擬主機,當請求無法匹配到任何一個Host上的時候,將交給該默認 Host 來處理。

(5)Host

Host代表一個 VirtualHost,即虛擬主機,每個虛擬主機和某個網絡域名 DomainName 相匹配。
每個虛擬主機下都可以部署(deploy)一個或者多個WebApp,每個WebApp 對應于個Context,有一個Context path。
當Host獲得一個請求時,將把該請求匹配到某個Context上,然后把該請求交給該Context來處理,匹配的方法是“最長匹配”,所以一個path==""的Context將成為該 Host 的默認 Context。所有無法和其他Context的路徑名匹配的請求都將最終和該默認Context 匹配

(6)Context

一個 Context 對應于一個 Web Application,一個Web Application 由一個或者多個 Servlet 組成。

3.7,建立Java的web站點

執行下面步驟可以建立Java的web 站點:

(1)在根目錄下建立一個web目錄,并在里面建立一個webapp1 目錄,用于存放網站文件。
mkdir /web/webappl
vim /web/webapp1/index.jsp
vim /usr/local/tomcat/conf/server.xml
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

二,案例Nginx+Tomcat

通常情況下,一臺Tomcat站點由于可能出現單點故障及無法應付過多客戶復雜多樣的請求等問題,不能單獨應用于生產環境下,所以需要一套更可靠的解決方案來完
善Web 站點 架構。
Nginx是一款非常優秀的http服務器軟件,它能夠支持高達50000個并發連接數的響應,擁有強大的靜態資源處理能力,運行穩定,并且內存、CPU等系統資源消耗非常低。目前很多大型網站都應用Nginx服務器作為后端網站程序的反向代理及負載均衡器,來提升整個站點的負載并發能力。
Nginx是一個非常強大的靜態web服務,Tomcat處理動態請求效率不高,而一般網站大多數的內容都是靜態文件(如圖片、html、css、js等),經過ginx前端的反向代理加速和過濾,后端Tomcat處理請求的壓力便可大大減少,只需負責處理動態內容就可以了。在性能與穩定性的權衡下,使用Nginx+Tomcat 搭配便可讓它們在各自擅長的領域大展拳腳。
本案例介紹以Nginx作為負載均衡器、靜態頁面處理,Tomcat作為應用服務器的負載群集、動態頁面處理的設置方法。

1,安裝Nginx(略)

2,修改配置文件

upstream my_tomcat  {server 192.168.10.102:8080 weight=1server 192.168.10.103:8080 weight=2
}
charset utf-8
location ~ .*\.jsp$ {proxy_pass http://my_tomcat;proxy_set_header HOST $host;proxy_set_header Client-IP $remote_addr;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ .*\.(png|gif|jpeg|jpg)$ {root /usr/local/nginx/html/img;expires 30d;
}
cd /usr/local/nginx/html
mkdir img
cd img/
拉圖片
nginx -t
systemctl restart nginx

第二,三臺配置一樣

systemctl stop firewalld
setenforce 0
dnf -y install java
tar xf apache-tomcat-9.0.8.tar.gz
mv apache-tomcat-9.0.8.tar.gz  /usr/local/tomcat
cd  /usr/local/tomcat
ls
cd bin/
ls
./startup.sh
netstat -anpt | grep java
mkdir -p /web/webapp1
cd /web/webapp1/
拉index.jsp文件
vim index.jsp
test1(全改為1)
logo.png(修改)
vim /usr/local/tomcat/conf/server.xml
150行	<Context docBase="/web/webapp1" path="" reloadable="false"></Context>
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

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

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

相關文章

Spring Boot Actuator未授權訪問漏洞修復

方案1&#xff1a;在網關的配置文件里增加以下配置 management:endpoints:web:exposure:include: []enabled-by-default: falseendpoint:health:show-details: ALWAYS 方案二&#xff1a;直接在nginx配置攔截actuator相關接口 location /actuator { return 403; …

動態規劃之網格圖模型(二)

文章目錄 動態規劃之網格圖模型&#xff08;二&#xff09;LeetCode 931. 下降路徑最小和思路Golang 代碼 LeetCode 2684. 矩陣中移動的最大次數思路Golang 代碼 LeetCode 2304. 網格中的最小路徑代價思路Golang 代碼 LeetCode 1289. 下降路徑最小和 II思路Golang 代碼 LeetCod…

React 編譯器

&#x1f916; 作者簡介&#xff1a;水煮白菜王&#xff0c;一位前端勸退師 &#x1f47b; &#x1f440; 文章專欄&#xff1a; 前端專欄 &#xff0c;記錄一下平時在博客寫作中&#xff0c;總結出的一些開發技巧和知識歸納總結?。 感謝支持&#x1f495;&#x1f495;&#…

mac下通過anaconda安裝Python

本次分享mac下通過anaconda安裝Python、Jupyter Notebook、R。 anaconda安裝 點擊&#x1f449;https://www.anaconda.com/download&#xff0c; 點擊Mac系統安裝包&#xff0c; 選擇Mac芯片&#xff1a;蘋果芯片 or intel芯片&#xff0c; 選擇蘋果芯片圖形界面安裝&#x…

Pandas 技術解析:從數據結構到應用場景的深度探索

序 我最早用Python做大數據項目時&#xff0c;接觸最早的就是Pandas了。覺得對于IT技術人員而言&#xff0c;它是可以屬于多場景的存在&#xff0c;因為它的本身就是數據驅動的技術生態中&#xff0c;對于軟件工程師而言&#xff0c;它是快速構建數據處理管道的基石&#xff1…

【循環神經網絡RNN第一期】循環神經網絡RNN原理概述

目錄 &#x1f9e0; 什么是循環神經網絡&#xff08;RNN&#xff09;&#xff1f;&#x1f501; RNN 的結構圖&#x1f504; RNN 的“記憶”與問題RNN梯度推導 &#x1f9ec; LSTM&#xff1a;解決長期依賴問題&#x1f9f1; LSTM 的核心結構LSTM總結 參考 人類在思考的時候&am…

代碼隨想錄算法訓練營 Day60 圖論Ⅹ Bellmen_ford 系列算法

圖論 題目 94. 城市間貨物運輸 I Bellmen_ford 隊列優化算法 SPFA 大家可以發現 Bellman_ford 算法每次松弛 都是對所有邊進行松弛。 但真正有效的松弛&#xff0c;是基于已經計算過的節點在做的松弛。 本圖中&#xff0c;對所有邊進行松弛&#xff0c;真正有效的松弛&#…

Juce實現Table自定義

Juce實現Table自定義 一.總體展示概及概述 在項目中Juce中TableList往往無法滿足用戶需求&#xff0c;頭部和背景及背景顏色設置以及在Cell中添加自定義按鈕&#xff0c;所以需要自己實現自定義TabelList&#xff0c;該示例是展示實現自定義TableList&#xff0c;實現自定義標…

C++ set數據插入、set數據查找、set數據刪除、set數據統計、set排序規則、代碼練習1、2

set數據插入&#xff0c;代碼見下 #include<iostream> #include<set> #include<vector>using namespace std;void printSet(const set<int>& s) {for (set<int>::const_iterator it s.begin(); it ! s.end(); it) {cout << *it <…

深度學習賦能圖像識別:技術、應用與展望

論文&#xff1a; 一、引言? 1.1 研究背景與意義? 在當今數字化時代&#xff0c;圖像作為信息的重要載體&#xff0c;廣泛存在于各個領域。圖像識別技術旨在讓計算機理解和識別圖像內容&#xff0c;將圖像中的對象、場景、行為等信息轉化為計算機能夠處理的符號或數據 &am…

深入解析C++引用:從別名機制到函數特性實踐

1.C引用 1.1引用的概念和定義 引用不是新定義?個變量&#xff0c;而是給已存在變量取了?個別名&#xff0c;編譯器不會為引用變量開辟內存空間&#xff0c;它和它引用的變量共用同?塊內存空間。比如四大名著中林沖&#xff0c;他有一個外號叫豹子頭&#xff0c;類比到C里就…

【從0-1的HTML】第1篇:HTML簡介

1 HTML簡介 HTML是用來描述網頁的一種語言,是超文本標記語言的縮寫(Hyper Text Markup Language),不屬于編程語言的范疇&#xff0c;屬于一種標記語言。 標記語言使用一套標記標簽(Markup tag)&#xff0c;又稱為標簽,HTML就是使用標記標簽來描述網頁。 1.2 HTML標簽 1、HTM…

vue+cesium示例:地形開挖(附源碼下載)

基于cesium和vue繪制多邊形實現地形開挖效果&#xff0c;適合學習Cesium與前端框架結合開發3D可視化項目。 demo源碼運行環境以及配置 運行環境&#xff1a;依賴Node安裝環境&#xff0c;demo本地Node版本:推薦v18。 運行工具&#xff1a;vscode或者其他工具。 配置方式&#x…

qwen大模型在進行詞嵌入向量時,針對的詞表中的唯一數字還是其他的?

qwen大模型在進行詞嵌入向量時,針對的詞表中的唯一數字還是其他的? Qwen大模型進行詞嵌入向量時,針對的是詞表中每個 Token 對應的唯一數字(Token ID) ,核心邏輯結合詞表構建、嵌入過程展開 一、Qwen 詞表與 Token ID Qwen 用 BPE 分詞器(基于 tiktoken,以 cl100k 為…

動態規劃-1143.最長公共子序列-力扣(LeetCode)

一、題目解析 對于給定了兩個字符串中&#xff0c;需要找到最長的公共子序列&#xff0c;也就是兩個字符串所共同擁有的子序列。 二、算法原理 1、狀態表示 dp[i][j]&#xff1a;表示s1的[0,i]和s2的[0,j]區間內所有子序列&#xff0c;最長子序列的長度 2、狀態轉移方程 根…

互聯網c++開發崗位偏少,測開怎么樣?

通過這標題&#xff0c;不難看出問這個問題的&#xff0c;就是沒工作過的。如果工作過&#xff0c;那就是不斷往深的鉆研&#xff0c;路越走越窄&#xff0c;找工作一般就是找原來方向的。沒工作過的&#xff0c;那一般就是學生。 學生找什么方向的工作比較好&#xff1f; 學生…

推薦算法八股

跑路了&#xff0c;暑期0offer&#xff0c;華為主管面掛了&#xff0c;真幽默&#xff0c;性格測評就掛了居然給我一路放到主管面&#xff0c;科大迅飛太囂張&#xff0c;直接跟人說后面要面華為&#xff0c;元戎啟行&#xff0c;學了C后python完全忘了怎么寫&#xff0c;挺尷尬…

Spring Boot微服務架構(九):設計哲學是什么?

一、Spring Boot設計哲學是什么&#xff1f; Spring Boot 的設計哲學可以概括為 ??“約定優于配置”?? 和 ??“開箱即用”??&#xff0c;其核心目標是??極大地簡化基于 Spring 框架的生產級應用的初始搭建和開發過程??&#xff0c;讓開發者能夠快速啟動并運行項目…

前端導入Excel表格

前端如何在 Vue 3 中導入 Excel 文件&#xff08;.xls 和 .xlsx&#xff09;&#xff1f; 在日常開發中&#xff0c;我們經常需要處理 Excel 文件&#xff0c;比如導入數據表格、分析數據等。文章將在 Vue 3 中實現導入 .xls 和 .xlsx 格式的文件&#xff0c;并解析其中的數據…

C++和C#界面開發方式的全面對比

文章目錄 C界面開發方式1. **MFC&#xff08;Microsoft Foundation Classes&#xff09;**2. **Qt**3. **WTL&#xff08;Windows Template Library&#xff09;**4. **wxWidgets**5. **DirectUI** C#界面開發方式1. **WPF&#xff08;Windows Presentation Foundation&#xf…