win10使用nginx做簡單負載均衡測試

一、首先安裝Nginx:

官網鏈接:https://nginx.org/en/download.html
下載完成后,在本地文件中解壓。
解壓完成之后,打開conf --> nginx.config 文件

1、在 http 里面加入以下代碼
upstream GY{#Nginx是如何實現負載均衡的,Nginx的upstream目前支持以下幾種方式的分配#1、輪詢(默認)#每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。#2、weight#指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。#3、ip_hash#每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。#4、fair(第三方)#按后端服務器的響應時間來分配請求,響應時間短的優先分配。#5、url_hash(第三方)#按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。  ip_hash;#weigth參數表示權值,權值越高被分配到的幾率越大server 127.0.0.1:8088 weight=2;server 127.0.0.1:8089  weight=1;}

解釋說明:

  • 其中 upstream 為固定單詞,用于定義后端服務器組,后面緊跟的 GY自定義 (它叫做 服務器組名稱
  • 127.0.0.1:8088 / 127.0.0.1:8089 這個代表服務啟動的端口號,這個服務可以自己寫js文件,也可以安裝兩個tomcat服務啟動(兩者選其一)。至于怎么啟動,下面會有說明。
2、在 server 里面修改為下面代碼
listen  888;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {# root   html;# index  index.html index.htm;proxy_pass http://GY;}

**解釋說明: **

  • 這里把之前nginx默認的 端口號 80改為 888,以防止80端口占用,把原來默認的頁面注釋掉,增加了服務代理,這樣直觀看到調用了哪一個server。
  • 這里 proxy_pass 的值 和上面的 upstream后面的要保持一致。

二、配置以及啟動服務(這兩個選一個,否則會端口沖突,如果都要試試,端口號記得避開)

1、使用簡單的js文件啟動(前提要安裝 node.js)

在任意目錄下新建兩個文件命名為 webserver1.jswebserver2.js。代碼如下:

webserver1.js:

var http = require('http');
var server = http.createServer(function(req,res){res.write("Hello world from Serve One.");res.end();
});
server.listen(8088);
console.log("running at http://127.0.0.1:8088");

webserver2.js:

var http = require('http');
var server = http.createServer(function(req,res){res.write("Hello world from Server Two.");res.end();
});
server.listen(8089);
console.log("running at http://127.0.0.1:8089");

保存后,分別在相應的目錄下輸入 cmd ,然后輸入 node webserver1.jsnode webserver2.js,來啟動兩個服務。可以在終端控制器中查看打印的內容。

2、使用tomcat

2.1 下載

首先下載tomcat:https://tomcat.apache.org/download-90.cgi(官網比較慢)。 注意: 這里要下載兩遍,最好下載不同的兩個版本,用來區分兩個服務
我下載了一個9.0.105版本和10.1.41版本。
apache-tomcat-9.0.105-windows-x64.zip
apache-tomcat-10.1.41-windows-x64.zip
下載完成之后解壓,下一步需要配置環境變量。

2.2 配置環境變量

在這里插入圖片描述
同時配置兩個環境變量:
CATALINA_HOME :自己電腦里9.0.105 的根目錄
CATALINA2_HOME:自己電腦里10.1.41 的根目錄
在這里插入圖片描述
同時,在 Path 中添加下面兩項。
在這里插入圖片描述
**環境變量配置好后,分別打開兩個目錄下的conf --> tomcat-users.xml,**最后一行上面加上下面代碼:

2.3 修改文件

<!-- 定義角色 -->
<role rolename="manager-gui"/>
<role rolename="manager-script"/><!-- 定義用戶及其角色 -->
<user username="tomcat" password="123456" roles="manager-gui,manager-script"/>

在這里插入圖片描述
分別打開兩個文件的 server.xml:保證兩個端口號不同

1、修改 port

在這里插入圖片描述

2、修改connector

在這里插入圖片描述
下面9.0.105 文件不動,修改 10.1.41文件!!

將下列圈中的文件,分別用編輯器打開,然后將里面的CATALINA_HOME替換為CATALINA2_HOME,將CATALINA_BASE替換為CATALINA2_BASE

文件里如果沒有CATALINA_BASE字段,則只替換CATALINA_HOME即可;
在這里插入圖片描述
替換完成后,將該文件下的startup.bat,shutdown.bat,version.bat文件名重命名為startup2.bat,shutdown2.bat,version2.bat。(上圖是已經替換后的名稱)

2.4 啟動服務

在9.0.105下的 bin輸入startup.bat啟動tomcat9.0.105
在這里插入圖片描述

新打開一個CMD窗口,在10.1.41輸入startup2.bat啟動服務,頁面同上。
在這里插入圖片描述

啟動成功后就可以在瀏覽器中輸入:
http://localhost:8088/
在這里插入圖片描述http://localhost:8089/
在這里插入圖片描述

三、最后啟動 nginx

也可以在tomcat后安裝nginx,安裝解壓修改后雙擊 nginx.exe,頁面會一閃而過,然后關閉,表示啟動成功。
在這里插入圖片描述
也可以打開 cmd 啟動,啟動后,若修改了config文件,需要輸入 nginx -s reload 重啟。
所有的配置完成后,在瀏覽器中輸入 http://localhost:888/ 多刷新幾遍,查看頁面是否有變化,除此之外,還可以在nginx中配置更多的選項,使得分配的機制更適應于你的項目和服務器。

四、擴展

上述tomcat默認打開的是該頁面:
在這里插入圖片描述
如果想要額外配置自定義頁面,則
分別(兩個目錄都要配一樣的文件名) 在 tomcat 目錄下的 webapps下新增一個文件,將 ROOT 下的
WEB-INF復制。
在這里插入圖片描述
在這里插入圖片描述
兩個index.html 里面只有一行
在這里插入圖片描述
然后就可以在剛才地址后面加上自定義的文件名就可以訪問兩個文件。
在這里插入圖片描述

在這里插入圖片描述
到這里一個簡單的負載測試已完成,也可以在這個基礎上增加額外的配置來測試。

【參考文章】
配置兩個tomcat:
https://blog.csdn.net/zouguo1211/article/details/83997231
基于Nginx的負載均衡實驗,驗證不同負載均衡策略:https://blog.csdn.net/OMio__/article/details/122539389
Nginx負載均衡原理及配置實例:
https://www.cnblogs.com/qinlulu/p/12821289.html
如何在Tomcat上部署自己的靜態web頁面:
https://blog.csdn.net/Versionssf/article/details/116210978

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

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

相關文章

[特殊字符]車牌識別相機,到底用在哪?

停車場管理&#xff0c;快速通行不是夢 停車場大概是車牌識別相機最常見的 “工作崗位” 啦&#xff01;以前進出停車場&#xff0c;取卡、刷卡、人工收費&#xff0c;一系列操作下來&#xff0c;高峰期的時候真的能把人等得不耐煩&#x1f62b; 現在有了車牌識別相機&#xff…

nosqlbooster pojie NoSQLBooster for MongoDB

測過可用&#xff0c;注意 asar的安裝使用報錯改用 npx asar extract app.asar app 路徑 C:\Users{computerName}\AppData\Local\Programs\nosqlbooster4mongo\resources npm install asar -g asar extract app.asar app 打開shared\lmCore.js 修改MAX_TRIAL_DAYS3000 修改…

組態王通過開疆智能profinet轉ModbusTCP網關連接西門子PLC配置案例

本案例是組態王通過使用開疆智能研發的Profinet轉ModbusTCP網關采集西門子1200PLC中數據的案例。 網關配置 首先來配置網關的參數&#xff0c;打開網關配置軟件“Gateway Configuration Studio” 由于組態王那側設定為ModbusTCP客戶端所以網關作為ModbusTCP服務器。新建項目…

大模型服務如何實現高并發與低延遲

寫在前面 大型語言模型(LLM)正以前所未有的速度滲透到各行各業,從智能客服、內容創作到代碼生成、企業知識庫,其應用場景日益豐富。然而,將這些強大的 AI 能力轉化為穩定、高效、可大規模應用的服務,卻面臨著巨大的挑戰,其中高并發處理能力和低響應延遲是衡量服務質量的…

k8s監控方案實踐補充(二):使用kube-state-metrics獲取資源狀態指標

k8s監控方案實踐補充&#xff08;二&#xff09;&#xff1a;使用kube-state-metrics獲取資源狀態指標 文章目錄 k8s監控方案實踐補充&#xff08;二&#xff09;&#xff1a;使用kube-state-metrics獲取資源狀態指標一、Metrics Server簡介二、kube-state-metrics實戰部署1. 創…

Manus 全面開放注冊,OpenAI 發布 Codex,ChatGPT 上線 GPT-4.1!| AI Weekly 5.12-18

&#x1f4e2;本周 AI 快訊 | 1 分鐘速覽&#x1f680; 1?? &#x1f4dd; Manus 全面開放注冊 &#xff1a;無需邀請碼即可注冊&#xff0c;新用戶免費獲得 1000 積分&#xff0c;每日 300 積分免費任務。 2?? &#x1f50d; 阿里 Qwen 推出「深入研究」 &#xff1a;Qw…

代理(主要是動態)和SpringAOP

代理 靜態代理基于繼承實現動態代理是基于接口實現 業務層每次實現轉賬都需要執行&#xff0c;可以把他們拿出來當成一個切面&#xff0c;自己寫出一個代理類&#xff0c;讓業務層只執行業務的邏輯&#xff0c;重復的代碼代理類來完成&#xff0c;然后調用代理類來執行。 代理類…

uniapp打包H5,輸入網址空白情況

由于客戶預算有限&#xff0c;最近寫了兩個uniapp打包成H5的案例&#xff0c;總結下面注意事項 1. 發行–網站-PCWeb或手機H5按鈕&#xff0c;輸入名稱&#xff0c;網址 點擊【發行】&#xff0c;生成文件 把這個給后端&#xff0c;就可以了 為什么空白呢 最重要一點&#xf…

uniapp-商城-63-后臺 商品列表(分類展示商品的刪除)

商品列表中的數據需要進行狀態管理&#xff0c;如上架、下架、刪除和修改等操作。對于存在錯誤或后期需要重新上傳的商品&#xff0c;可以通過刪除操作進行處理。 具體到商品刪除功能的實現&#xff0c;其基本流程如下&#xff1a;用戶在前端頁面點擊刪除按鈕后&#xff0c;系統…

學習設計模式《十》——代理模式

一、基礎概念 代理模式的本質【控制對象訪問】&#xff1b; 代理模式的定義&#xff1a;為其他對象提供一種代理以控制對這個對象的訪問&#xff1b; 代理模式的功能&#xff1a;代理模式是通過創建一個代理對象&#xff0c;用這個代理對象去代表真實的對象&#xff1b;客戶端得…

阿里云web端直播(前端部分)

阿里云&#xff1a;Web播放器快速接入_視頻點播(VOD)-阿里云幫助中心 import Aliplayer from aliyun-aliplayerimport aliyun-aliplayer/build/skins/default/aliplayer-min.css<div id"J_prismPlayer" style"width: 300px; height: 300px;" />var …

深入解析OrientDB:多模型數據庫的技術優勢與實際應用

OrientDB 是一款開源的多模型 NoSQL 數據庫&#xff0c;融合了文檔數據庫、圖數據庫和對象數據庫的特性。它不僅支持靈活的數據建模&#xff0c;還提供了高性能的查詢能力&#xff0c;適用于社交網絡、物聯網、內容管理等場景。本文詳細探討 OrientDB 的核心特性、應用場景&…

STM32控制電機

初始化時鐘&#xff1a;在 STM32 的程序中&#xff0c;初始化系統時鐘&#xff0c;一般會使用 RCC&#xff08;Reset and Clock Control&#xff09;相關函數來配置時鐘。例如&#xff0c;對于 STM32F103 系列&#xff0c;可能會使用 RCC_APB2PeriphClockCmd 函數來使能 GPIO 和…

(05)數字化轉型之生產制造:從通常的離散制造到柔性化生產的全景指南

當今制造業正經歷著前所未有的數字化變革&#xff0c;從傳統的離散制造到流程制造&#xff0c;再到新興的項目制造和柔性制造&#xff0c;各種生產模式都在加速向智能化方向演進。本文將系統性地介紹制造業生產管理的完整體系&#xff0c;為企業數字化轉型提供全面的方法論和實…

龍虎榜——20250520

上證指數今天縮量向上&#xff0c;個股漲多跌少&#xff0c;大盤股和小盤股總體表現都還可以。 深證同樣縮量上漲&#xff0c;向上補缺口的概率增大。 2025年5月20日龍虎榜行業方向分析 寵物經濟&#xff08;消費升級政策催化&#xff09; ? 代表標的&#xff1a;天元寵物、…

CVE-2022-22978源碼分析與漏洞復現

漏洞概述 CVE-2022-22978 是 Spring Security 框架中的一個高危認證繞過漏洞&#xff0c;影響版本包括 Spring Security 5.5.x < 5.5.7、5.6.x < 5.6.4 及更早的不受支持版本。攻擊者可通過構造包含換行符&#xff08;如 %0a&#xff09;的 URL 路徑&#xff0c;繞過正則…

PostGIS實現柵格數據入庫【raster2pgsql】

raster2pgsql使用與最佳實踐 一、工具概述 raster2pgsql是PostGIS提供的命令行工具,用于將GDAL支持的柵格格式(如GeoTIFF、JPEG、PNG等)導入PostgreSQL數據庫,支持批量加載、分塊切片、創建空間索引及金字塔概覽,是柵格數據入庫的核心工具。 二、核心功能與典型用法 1…

Redis企業級開發實戰:核心應用場景與最佳實踐

引言 Redis&#xff08;Remote Dictionary Server&#xff09;作為一款高性能的內存數據庫&#xff0c;在企業級開發中扮演著至關重要的角色。無論是緩存加速、分布式鎖、實時統計&#xff0c;還是消息隊列&#xff0c;Redis都能以極低的延遲和極高的吞吐量滿足業務需求。本文…

深入解析Spring Boot與Spring Cloud在微服務架構中的實踐

深入解析Spring Boot與Spring Cloud在微服務架構中的實踐 引言 隨著云計算和分布式系統的快速發展&#xff0c;微服務架構已成為現代軟件開發的主流模式。Spring Boot和Spring Cloud作為Java生態中微服務開發的核心框架&#xff0c;為開發者提供了強大的工具和組件&#xff0…

AI量化交易是什么?它是如何重塑金融世界的?

第一章&#xff1a;證券交易的進化之路 1.1 從喊價到代碼&#xff1a;交易方式的革命性轉變 在電子交易普及之前&#xff0c;證券交易依賴于交易所內的公開喊價系統。交易員通過手勢、喊話甚至身體語言傳遞買賣信息&#xff0c;這種模式雖然直觀&#xff0c;但效率低下且容易…