Nginx + Tomcat負載均衡群集

目錄

一、案例環境

二、部署 Tomcat(102/103)

?1、準備環境

(1)關閉firewalld 防火墻

(2)安裝JDK

2、安裝配置 Tomcat

(1)Tomcat 的安裝和配置

(2)移動并改名

(3)啟動并查看監聽

(4)打開瀏覽器測試

3、建立Java的Web站點

(1)建立目錄

(2)在webapp1目錄下建立一個index.jsp 的測試頁面

(3)修改Tomcat 的server.xml 文件

(4)關閉Tomcat,再重新啟動

(5)確認Web 站點

4、Tomcat 配置相關說明

(1)主要目錄說明

(2)配置文件說明

三、配置Nginx,實現負載均衡、動靜分離群集(101)

1、Nginx 服務器配置

(1)關閉防火墻

(2)安裝相關軟件包

(3)解壓并安裝Nginx

(4)配置nginx.conf

2、測試效果


一、案例環境

IP

操作系統

應用

Nginx服務器(101)

192.168.10.101

OpenEuler24

nginx-1.26.3

Tomcat1服務器(102)

192.168.10.102

OpenEuler24

apache-tomcat-9.0.8

Tomcat2服務器(103)

192.168.10.103

OpenEuler24

apache-tomcat-9.0.8

二、部署 Tomcat(102/103)

?1、準備環境

(1)關閉firewalld 防火墻

systemctl stop firewalld
setenforce 0

(2)安裝JDK

dnf -y install java

2、安裝配置 Tomcat

(1)Tomcat 的安裝和配置

解壓本文使用的安裝包

tar zxvf apache-tomcat-9.0.8.tar.gz

(2)移動并改名

mv apache-tomcat-9.0.8 /usr/local/tomcat

(3)啟動并查看監聽

[root@localhost ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

Tomcat 默認運行在8080 端口,運行netstat 命令查看8080 端口監聽的信息。

[root@localhost bin]# netstat -anpt | grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1955/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1955/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      1955/java   

(4)打開瀏覽器測試

在瀏覽器訪問http://192.168.10.102:8080和http://192.168.10.103:8080即可查看Tomcat的默認界面。

3、建立Java的Web站點

(1)建立目錄

mkdir -p /web/webapp1

(2)在webapp1目錄下建立一個index.jsp 的測試頁面

102

vim /web/webapp1/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>   
<head><title>JSP test1 page</title>   </head><body><% out.println("動態頁面 1,http://www.test1.com");%></body><body><div>動態頁面的圖片 1</div><br><img src="logo.png"></body>
</html>

103

vim /web/webapp1/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>   
<head><title>JSP test2 page</title>   </head><body><% out.println("動態頁面 2,http://www.test2.com");%></body><body><div>動態頁面的圖片 2</div><br><img src="logo.png"></body>
</html>

(3)修改Tomcat 的server.xml 文件

定義一個虛擬主機,并將網站文件路徑指向已經建立的/web/webapp1,在 host 段增加context 段。

vim /usr/local/tomcat/conf/server.xml <Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"><Context docBase="/web/webapp1" path="" />    #150,添加

(4)關閉Tomcat,再重新啟動

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh

(5)確認Web 站點

然后將準備好的logo.png圖片放到/web/webapp1/目錄下,訪問192.168.10.102:8080和192.168.10.103:8080

4、Tomcat 配置相關說明

Tomcat 的主目錄為/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)配置文件說明

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

三、配置Nginx,實現負載均衡、動靜分離群集(101)

通常情況下,一臺 Tomcat 站點由于可能出現單點故障及無法應付過多客戶復雜多樣的 請求等問題,不能單獨應用于生產環境下,所以需要一套更可靠的解決方案來完善 Web 站點 架構。

Nginx 是一款非常優秀的 http 服務器軟件,它能夠支持高達 50000 個并發連接數的響應,擁有強大的靜態資源處理能力,運行穩定,并且內存、CPU 等系統資源消耗非常低。 目 前很多大型網站都應用 Nginx 服務器作為后端網站程序的反向代理及負載均衡器,來提升整個站點的負載并發能力。

Nginx 是一個非常強大的靜態 web 服務,Tomcat 處理動態請求效率不高,而一般網站大 多數的內容都是靜態文件(如圖片、html、css、js 等),經過 Nginx 前端的反向代理加速 和過濾,后端Tomcat 處理請求的壓力便可大大減少,只需負責處理動態內容就可以了。在 性能與穩定性的權衡下,使用 Nginx+Tomcat 搭配便可讓它們在各自擅長的領域大展拳腳。

1、Nginx 服務器配置

在 Nginx 服務器 192.168.10.101 上安裝 Nginx,反向代理到兩個 Tomcat 站點,并實現負載均衡。

(1)關閉防火墻

systemctl stop firewalld
setenforce 0

(2)安裝相關軟件包

dnf -y install gcc make pcre-devel zlib-devel openssl-devel perl-ExtUtils-MakeMaker

(3)解壓并安裝Nginx

useradd -M -s /sbin/nologin nginx
tar zxf nginx-1.26.3.tar.gz
cd nginx-1.26.3
./configuer --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-pcre

(4)配置nginx.conf

在 http{…}中加入以下代碼,設定負載均衡的服務器列表,weight 參數表示權重,權重越高,被分配到的概率越大。

vim /usr/local/nginx/conf/nginx.conf#gzip  on;upstream my_tomcat {server 192.168.10.102:8080 weight=1;server 192.168.10.103:8080 weight=2;}

把 Nginx 的默認站點通過 proxy_pass 方法代理到了設定好的 tomcat_server 負載均衡服務器組上。配置完整的 nginx.conf 文件內容如下。

vim /usr/local/nginx/conf/nginx.confhttp {
......#gzip  on;upstream my_tomcat {server 192.168.10.102:8080 weight=1;server 192.168.10.103:8080 weight=2;}server {listen       80;server_name  localhost;charset utf-8;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}location ~ .*\.jsp$ {proxy_set_header HOST $host;proxy_set_header Client-IP $remote_addr;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;proxy_pass http://my_tomcat;}location ~ .*\.(png|gif|jpeg|jpg)$ {root /usr/local/nginx/html/img;expires 30d;}
......}
......
}

下面再 Nginx 上準備靜態圖片

mkdir /usr/local/nginx/html/img

?將圖片放到img/目錄下

cp /root/logo.jpg /usr/local/nginx/html/img/

測試Nginx 配置文件是否正確

[root@bogon html]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

啟動Nginx 服務

systemctl start nginx

Nginx查看端口號及PID進程號

[root@bogon ~]# netstat -anpt | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1907/nginx: master  

2、測試效果

多次訪問192.168.10.101/index.jsp,會發現下圖會以1:2的比例輪流出現,就說明負載均衡群集搭建成功,已經可以再兩個Tomcat server站點進行切換。

查看日志?

?

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

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

相關文章

三、元器件的選型

前言&#xff1a;我們確立了題目的功能后&#xff0c;就可以開始元器件的選型&#xff0c;元器件的選型關乎到我們后面代碼編寫的一個難易。 一、主控的選擇 主控的選擇很大程度上決定我們后續使用的代碼編譯器&#xff0c;比如ESP32使用的是VScode&#xff0c;或者Arduino&a…

API是什么意思?如何實現開放API?

目錄 一、API 是什么 &#xff08;一&#xff09;API 的定義 &#xff08;二&#xff09;API 的作用 二、API 的類型 &#xff08;一&#xff09;Web API 1. RESTful API 2. SOAP API &#xff08;二&#xff09;操作系統 API &#xff08;三&#xff09;數據庫 API …

AI生成的基于html+marked.js實現的Markdown轉html工具,離線使用,可實時預覽 [

有一個markdown格式的文檔&#xff0c;手頭只有notepad的MarkdownPanel插件可以預覽&#xff0c;但是只能預覽&#xff0c;不能直接轉換為html文件下載&#xff0c;直接復制預覽的內效果又不太好&#xff0c;度娘也能找到很多工具&#xff0c;但是都需要在線使用。所以考慮用AI…

Java-前置基礎

前言 基礎基礎 package org.example;public class Main {int a 10;String s1 "你好";public static void main(String[] args) {System.out.println(a);System.out.println(s1);} } 發現報錯位置 public class Main {static int a 10;static String s1 "你好…

python字符串方法

1. capitalize&#xff1a; 是第一個字符大寫&#xff0c;其余小寫 2. encode&#xff1a; 將字符串轉換為字節串&#xff08;bytes&#xff09;&#xff0c;默認使用 UTF-8 編碼。 3. format&#xff1a; format是 Python 中字符串對象的內置方法&#xff0c;語法為S.form…

Java詳解LeetCode 熱題 100(24):LeetCode 234. 回文鏈表(Palindrome Linked List)詳解

文章目錄 1. 題目描述1.1 鏈表節點定義 2. 理解題目2.1 回文鏈表的特征2.2 核心難點 3. 解法一&#xff1a;轉換為數組法3.1 算法思路3.2 詳細圖解3.3 Java代碼實現3.4 詳細執行過程演示3.5 執行結果示例3.6 使用數組而非ArrayList的優化版本3.7 復雜度分析3.8 優缺點分析 4. 解…

平板電腦如何通過EN 18031認證

平板電腦若需通過 EN 18031 認證&#xff08;歐盟無線電設備網絡安全標準&#xff0c;屬于 CE RED 指令的一部分&#xff09;&#xff0c;需滿足其針對互聯網連接設備和數據處理設備的安全要求。以下是詳細的認證流程、技術要求和操作指南&#xff1a; 一、認證背景與法規基礎…

KaiwuDB在邊緣計算領域的應用與優勢

KaiwuDB 在邊緣計算場景中主要應用于 工業物聯網&#xff08;IIoT&#xff09;、智能電網、車聯網 等領域&#xff0c;通過其分布式多模架構和輕量化設計&#xff0c;在邊緣側承擔 數據實時處理、本地存儲與協同分析 的核心作用。以下是具體案例和功能解析&#xff1a; 1. 典型…

MP4文件聲音與視頻分離

最近學習PR剪輯 要添加視頻文件和音頻文件 但是直接給MP4文件 得到的是一個整體 不管怎么切分 都是無法得到單獨的整體 這就需要將視頻文件和音頻文件分離 我推薦使用ffmpeg工具進行分離 夸克鏈接&#xff1a;https://pan.quark.cn/s/8dbc3bfbc5d4 百度鏈接: https://pan.ba…

山洪徑流過程及洪水淹沒數值模擬

氣候變化背景下&#xff0c;極端天氣導致的洪水事件將更加頻發。快速城市化對流域下墊面的改變&#xff0c;及人類活動向洪泛區的擴張。二者共同使得全世界多數人類活動高度聚集區的洪水風險增加。洪水淹沒危險性&#xff08;各種年遇型洪水淹沒&#xff09;是洪水損失評估、風…

Rust 通用代碼生成器:蓮花,紅蓮嘗鮮版三十六,圖片初始化功能介紹

Rust 通用代碼生成器&#xff1a;蓮花&#xff0c;紅蓮嘗鮮版三十六&#xff0c;圖片初始化功能介紹 Rust 通用代碼生成器蓮花&#xff0c;紅蓮嘗鮮版三十六。支持全線支持圖片預覽&#xff0c;可以直接輸出帶圖片的啞數據模式快速原型。啞數據模式和枚舉支持圖片。啞數據和枚…

Mysql中select查詢語句的執行過程

目錄 1、介紹 1.1、組件介紹 1.2、Sql執行順序 2、執行流程 2.1. 連接與認證 2.2. 查詢緩存 2.3. 語法解析&#xff08;Parser&#xff09; 2.4、執行sql 1. 預處理&#xff08;Preprocessor&#xff09; 2. 查詢優化器&#xff08;Optimizer&#xff09; 3. 執行器…

Acrobat DC v25.001 最新專業版已破,像word一樣編輯PDF!

在數字化時代&#xff0c;PDF文件以其穩定性和通用性成為了文檔交流和存儲的熱門選擇。無論是閱讀、編輯、轉換還是轉曲&#xff0c;大家對PDF文件的操作需求日益增加。因此&#xff0c;一款出色的PDF處理軟件不僅要滿足多樣化的需求&#xff0c;還要通過簡潔的界面和強大的功能…

CSS中justify-content: space-between首尾貼邊中間等距(兩端元素緊貼左右邊緣,中間元素等距均勻分布)

justify-content: space-between; 是 CSS Flexbox 布局中的一個屬性值&#xff0c;主要作用是在彈性容器的主軸方向上均勻分布子元素&#xff0c;具有以下核心特性&#xff1a; 作用效果&#xff1a; 首尾貼邊 第一個子元素緊貼容器起始端 最后一個子元素緊貼容器結束端 中…

Web 架構之 CDN 加速原理與落地實踐

文章目錄 一、思維導圖二、正文內容&#xff08;一&#xff09;CDN 基礎概念1. 定義2. 組成部分 &#xff08;二&#xff09;CDN 加速原理1. 請求路由2. 內容緩存3. 內容更新 &#xff08;三&#xff09;CDN 落地實踐1. 選擇 CDN 服務商2. 配置 CDN3. 集成到 Web 架構 &#xf…

全球知名具身智能/AI機器人實驗室介紹之AI FACTORY基于慕尼黑工業大學

全球知名具身智能/AI機器人實驗室介紹之AI FACTORY基于慕尼黑工業大學 TUM AI FACTORY&#xff0c;即KI.FABRIK&#xff0c;是德國慕尼黑工業大學&#xff08;TUM&#xff09;在巴伐利亞州推出的一個旗艦項目&#xff0c;旨在打造未來工廠&#xff0c;將傳統工廠轉變為由人工智…

DRV8833 電機控制芯片

引腳分配如圖&#xff1a; 要讓芯片運行需要將STBY拉高 IN1 IN2 分兩組 對應 AO BO&#xff0c;同時拉高電平可以進行剎車&#xff08;慢速衰減。 芯片本身引腳定義&#xff1a; 控制真值表&#xff1a;

如何通過git命令查看項目連接的倉庫地址?

要通過 Git 命令查看項目連接的倉庫地址&#xff0c;您可以使用以下幾種方法&#xff1a; 1. 查看所有遠程倉庫地址 使用 git remote -v 命令&#xff0c;它會顯示項目中配置的所有遠程倉庫及其對應的 URL&#xff1a; git remote -v輸出示例&#xff1a; origin https://…

區塊鏈技術相關

區塊鏈技術參考&#xff1a;區塊鏈 多領域 一、區塊鏈技術演進與2025年核心突破 2025年&#xff0c;區塊鏈技術已從單一分布式賬本演變為融合人工智能、物聯網、隱私計算的多維技術棧。零知識證明&#xff08;ZKP&#xff09;在性能優化上取得關鍵進展&#xff0c;以太坊等主流…

C語言字符數組輸入輸出方法大全(附帶實例)

在 C語言中&#xff0c;字符數組是一種特殊的數組&#xff0c;用于存儲和處理字符串。理解字符數組的輸入和輸出操作對于初學者來說至關重要&#xff0c;因為這是處理文本數據的基礎。 字符數組的定義與初始化 在討論輸入輸出之前&#xff0c;我們先來回顧一下字符數組的定義…