中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

發布時間:2020-05-29 15:31:36 來源:億速云 閱讀:990 作者:鴿子 欄目:云計算

一、Nginx 負載均衡實現原理:

Nginx 實現負載均衡是通過反向代理來實現的。

(1)Nginx 靜態處理優勢

Nginx 處理靜態頁面的效率遠高于 Tomcat 的處理能力;
如果 Tomcat 的請求量為 1000次,則 Nginx 的請求量為 6000次;
Tomcat 每秒的吞吐量為 0.6 M,Nginx 的每秒吞吐量為 3.6M;
Nginx 處理靜態資源的能力是 Tomcat 處理的6倍,優勢很大。

(2)Tomcat 主要目錄

bin:存放啟動和關閉Tomcat腳本
conf:存放Tomcat不同的配置文件
doc:存放Tomcat文檔
lib/japser/common:存放Tomcat運行需要的庫文件
logs:存放Tomcat執行時的LOG文件
src:存放Tomcat的源代碼
webapps:Tomcat的主要Web發布目錄
work:存放jsp編譯后產生的class文件

(3)Nginx 應用

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

(4)動靜分離原理

1、服務端接受來自客戶端的請求中,既有靜態資源也有動態資源。
2、設置 nginx 處理靜態圖片,后端 Tomcat 處理動態頁面
修改 Tomcat 端 jsp 文件,指定圖片文件;
修改 nginx 配置文件,添加正則處理圖片;
創建目錄并添加圖片(注意項目名稱需要和 Java 項目名稱相同)
重啟 nginx;
瀏覽器訪問測試查看圖片是否添加;
分別在 nginx 服務器和 Tomcat 服務器查看日志文件

二、實驗案例:

實驗拓撲圖

(1)網絡圖總覽:

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

(2)具體案例實驗:

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

角色              IP地址

Nginx           192.168.220.131

Tomcat01    192.168.220.136

Tomcat02    192.168.220.137

實驗環境說明:

準備三臺虛擬機,一臺作為 nginx 代理服務器,用于接收用戶的訪問請求,兩臺 Tomcat 服務器(群集);
nginx 將客戶端的請求,轉發給后臺的多臺 Tomcat 服務器處理,Tomcat 將請求回應,在通過代理服務器發給客戶端;
實驗驗證:客戶端只需要在瀏覽器上訪問代理服務器的地址,不需要訪問后臺的具體 Tomcat,就能訪問到網頁信息。

第一步:搭建 Nginx

搭建nginx,之前博客有詳細介紹。

第二步:部署兩臺 Tomcat

(1)配置 JAVA 環境
1、安裝 jdk
rpm -ivh jdk-8u201-linux-x64.rpm
安裝后的位置在:/usr/java/
2、配置環境變量
vim /etc/profile,在文件末尾添加以下代碼:
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
使環境變量生效:
source /etc/profile
3、使用 java -version 命令檢查是否已安裝成功

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

(2)安裝和啟動 Tomcat

1、解壓縮包到指定路徑,/usr/local/
tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/
2、解壓完成后,生成 apache-tomcat-9.0.16 文件夾,改名為 Tomcat
mv apache-tomcat-9.0.16/ tomcat
3、為了方便控制 tomcat的開啟和關閉,我們可以創建一個軟連接
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/
4、用 startup.sh 腳本開啟tomcat

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

第三步:Tomcat 中創建測試頁面

(1)創建目錄
mkdir -p /web/webapp1

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("Welcome to test site, http://www.test1.com");%>
</body>
</html>

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例)

(2)指定站點
目錄:/usr/local/tomcat/conf
vim server.xml
添加以下代碼:

 <Context docBase="/web/webapp1" path="" reloadable="false">
 </Context>

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

(3)回到 bin/ 目錄下,再重新啟動一下 Tomcat
./shutdown.sh 
./startup.sh
(4)瀏覽器訪問一下網頁,檢查是否成功

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

(5)第二臺 Tomcat 部署和第一臺一模一樣,但是為了頁面顯示區別,在 /web/webapp1/index.jsp 文件中,稍作修改,將 test1 改為 test2

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

注意:

在企業網中,群集中的 Tomcat 網站內容是一模一樣的,客戶無論訪問到哪個Tomcat,提供的網站都是一致的。但是這邊,為了展示實驗效果,站點內容不一樣,是為了區分在客戶端能夠看出是哪個Tomcat 提供了服務回應。

第四步:修改 Nginx 配置文件,添加服務器池

(1)文件位置:/usr/local/nginx/conf/nginx.conf
1、添加服務池:
 upstream tomcat-server {
                       server 192.168.220.136:8080 weight=1;
                       server 192.168.220.137:8080 weight=1;
                    }

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

2、在 location 段,添加以下代碼,意為調用服務池(協議,端口等等)
proxy_pass http://tomcat-server;

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

(2)重啟 nginx 服務
killall -1 nginx

第五步:客戶端測試

這個架構中,nginx 只作為代理服務器而存在,我們作為用戶訪問網頁,根本就不知道后面是哪一臺具體提供服務的服務器,只需要將請求發送給 nginx 代理服務器,由 nginx 代理服務器,調用后臺的Tomcat 給用戶提供回應。
在客戶機瀏覽器上訪問 nginx 代理服務器:

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

Nginx是怎么實現負載均衡的?Nginx負載均衡實現案例

我們可以看到,從代理服務器,可以直接訪問到群集Tomcat提供的服務。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和龙市| 庄浪县| 珠海市| 弥勒县| 甘谷县| 汝城县| 于田县| 广昌县| 阿瓦提县| 射洪县| 湖口县| 轮台县| 南川市| 萝北县| 四川省| 兴安县| 都江堰市| 黄骅市| 岳阳县| 武穴市| 萍乡市| 安图县| 安国市| 昆山市| 阳城县| 改则县| 莱州市| 滦南县| 天全县| 淮北市| 中宁县| 泰宁县| 台北县| 丹阳市| 肃南| 巫溪县| 永和县| 大姚县| 武川县| 汶上县| 潞西市|