一、首先安裝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.js
和 webserver2.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.js
和 node 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