1.方案:三臺tomcat服務器,經過nginx反向代理到tomcat服務器上面來達到負載均衡的效果html
2.環境:騰訊雲linux版本服務器+nginx+3個tomcat服務器linux
3.首先購買一臺騰訊雲服務器linux版(學生價格一個月十元左右)nginx
4.安裝nginxweb
5.安裝tomcat和jdk算法
6.由於咱們須要三臺tomcat服務器,因此安裝一臺以後再複製兩份windows
命令:cp -a 原tomcat名字 新tomcat名字瀏覽器
注意:cp 是複製意思 cp -a 是保留原文件屬性的前提下複製文件 tomcat
這裏咱們複製兩臺命名爲tomcat2 、tomcat3服務器
7.下面咱們更改tomcat端口,目前三個tomcat端口都是8080,咱們將tomcat二、tomcat3改成808一、8082session
更改端口在conf/server.xml中修改三個地方:以tomcat修改成8081爲例(8082再也不贅述)
第一個:
第二個:
第三個:
8.如今咱們三個tomcat訪問端口分別爲8080、808一、8082,下面配置nginx負載均衡
nginx安裝目錄通常是usr/local/nginx ,因此修改配置文件usr/local/nginx/conf/nginx.conf
配置好以後將三個tomcat所有啓動,啓動方法和windows下啓動方法同樣,而後啓動nginx(參考另外一篇nginx的文章),在瀏覽器中輸入http://140.143.75.62訪問
那這個時候有人問了,怎麼知道負載均衡效果有沒有起做用,ok這裏咱們修改一下這個tomcat默認頁面:
對tomcat2/webapps/ROOT/index.jsp進行一些修改,修改完訪問效果以下:
而後刷新一下瀏覽器以下圖:
而後再刷新一下:
這個時候看到了吧,三個tomcat服務器進行負載均衡,這是最簡單的默認的負載均衡方法(輪詢法),輪詢就是從上到下一次訪問個人三個tomcsat
負載均衡2(權重法):
upstream server1{
server 140.143.75.62:8080 weight=1;
server 140.143.75.62:8081 weight=3;
server 140.143.75.62:8082 weight=5;
}
權重法意思是訪問一次8080,而後三次8081,而後五次8082
負載均衡3(IP Hash):配置ip綁定,只要訪問一次以後,固定某個ip訪問
upstream server1{
ip_hash;
server 140.143.75.62:8080 ;
server 140.143.75.62:8081 ;
server 140.143.75.62:8082 ;
}
可以解決session共享的問題
--------------------------------------------------------------------------------------------------------------------------
下面兩種爲第三方的,瞭解便可:
負載均衡4(fair配置):按上游服務器的響應時間來分配請求。響應時間短的優先分配
upstream server1{
server 140.143.75.62:8080 ;
server 140.143.75.62:8081 ;
server 140.143.75.62:8082 ;
fair;
}
負載均衡5(url_hash配置):按照訪問的url的hash結果來分配請求,使每個url定向到同一個上游服務器。注意:在upstream中加入hash語句。server語句中不能寫入weight等其餘的參數,hash_method是使用的hash算法。
upstream server1{
server 140.143.75.62:8080 ;
server 140.143.75.62:8081 ;
server 140.143.75.62:8082 ;
hash $request_uri;
hash_method crc32;
}
感興趣的小夥伴能夠掃碼關注下公衆號哦,公衆號會分享高質量的技術文章哦