2.Tomcat集群、Nginx負(fù)載均衡

Tomcat集群包括單機(jī)多部署應(yīng)用和多機(jī)單部署應(yīng)用兩種,在本文當(dāng)中使用的是單機(jī)多部署的方式。
多機(jī)部署正常部署即可,不需要額外做修改,需要注意多是,多機(jī)部署一般要求每個(gè)服務(wù)器之安裝一個(gè)tomcat,并且他們之間是網(wǎng)絡(luò)互通的,此時(shí)才可以進(jìn)行集群。
單機(jī)部署比較繁瑣,下面進(jìn)行說(shuō)明。

一.Tomcat單機(jī)部署多應(yīng)用

1.Mac/Linux

#1.在配置文件(mac的~/.bash_profile,linux的/etc/profile)配置如下的環(huán)境變量:

export CATALINA_BASE=/Users/codesheep/application/tomcat-9.0.16-2
export CATALINA_HOME=/Users/codesheep/application/tomcat-9.0.16-2
export TOMCAT_HOME=/Users/codesheep/application/tomcat-9.0.16-2

export CATALINA_3_BASE=/Users/codesheep/application/tomcat-9.0.16-3
export CATALINA_3_HOME=/Users/codesheep/application/tomcat-9.0.16-3
export TOMCAT_3_HOME=/Users/codesheep/application/tomcat-9.0.16-3



#2.修改tomcat配置文件(配置要導(dǎo)入的環(huán)境)
####第一個(gè)tomcat不變
####打開(kāi)第二個(gè)tomcat目錄下的bin下catalina.sh,在該文件當(dāng)中找到# OS specific support. $var_must_be set to either true or false.

在下面編輯
export CATALINA_BASE=$CATALINA_3_BASE
export CATALINA_HOME=$CATALINA_3_HOME

####如果不配置此項(xiàng)的話,可能造成在tomcat2啟動(dòng)時(shí)加載的配置信息時(shí)tomcat1的,所以在進(jìn)行Tomcat集群的時(shí)候一般都要進(jìn)行添加。


#3.打開(kāi)第二個(gè)tomcat的conf目錄下server.xml,修改3端口
    server的port端口,shutdown家1000即可
    connector 的port,8080---9080,URIEncoding="UTF-8"
    connector 的port,protocol="AJP/1.3",8009--9009

#4.分別進(jìn)行入兩個(gè)tomcat的bin目錄,執(zhí)行startup.sh
#5.檢查兩個(gè)tomcat的啟動(dòng)日志
#6.訪問(wèn)8080,9080

${tomcat}/bin/catalina.sh

Server端口

Connector端口

Conncector端口

2.Windows下

1.環(huán)境變量當(dāng)中添加
export CATALINA_BASE=C:\tomcat-9.0.16-2
export CATALINA_HOME=C:\tomcat-9.0.16-2
export TOMCAT_HOME=C:\tomcat-9.0.16-2

export CATALINA_3_BASE=C:\tomcat-9.0.16-3
export CATALINA_3_HOME=C:\tomcat-9.0.16-3
export TOMCAT_3_HOME=C:\tomcat-9.0.16-3

2.修改tomcat配置文件
第一個(gè)不變,第二個(gè),打開(kāi)第二個(gè)tomcat目錄下的bin下catalina.bat,然后和mac下進(jìn)行同樣的操作即可。
后面的不走都一樣。

二.nginx負(fù)載均衡配、常用策略、場(chǎng)景及特點(diǎn)

1.輪訓(xùn)(默認(rèn),可以看成權(quán)重是1)

優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單
缺點(diǎn):沒(méi)有考慮每臺(tái)服務(wù)器的處理能力

upstream www.happymmall.com{
    server  www.happymmall.com:8080;
    server  www.happymmall.com:9080;
}

2.權(quán)重(最常用,只代表訪問(wèn)的概率,不一定是次數(shù))

優(yōu)點(diǎn):考慮了每臺(tái)服務(wù)器的處理能力,訪問(wèn)9080的概率是8080的1.5倍。

upstream www.happymmall.com{
    server  www.happymmall.com:8080  weight=10;
    server  www.happymmall.com:9080  weight=15;
}

3.ip hash

優(yōu)點(diǎn):可以實(shí)現(xiàn)同一用戶訪問(wèn)同一臺(tái)服務(wù)器
缺點(diǎn):ip hash不一定平均

upstream www.happymmall.com{
    ip_hash;
    server  www.happymmall.com:8080 ;
    server  www.happymmall.com:9080 ;
}

4.url hash(需要安裝一個(gè)第三方的插件)

優(yōu)點(diǎn):實(shí)現(xiàn)同一個(gè)服務(wù)訪問(wèn)同一個(gè)服務(wù)器
缺點(diǎn):url hash請(qǐng)求不平均,請(qǐng)求頻繁的url會(huì)請(qǐng)求到同一服務(wù)器上面

upstream www.happymmall.com{
    server  www.happymmall.com:8080 ;
    server  www.happymmall.com:9080 ;
    hash $request_uri;
}

5. fair(第三方)

特點(diǎn):按照后端服務(wù)器的響應(yīng)時(shí)間來(lái)進(jìn)行分配,響應(yīng)時(shí)間短的優(yōu)先分配

upstream www.happymmall.com{
    server  www.happymmall.com:8080 ;
    server  www.happymmall.com:9080 ;
    fair;
}
Nginx負(fù)載均衡擴(kuò)展

三.Nginx+tomcat搭建集群

1.使用輪訓(xùn)策略

1.  啟動(dòng)2個(gè)tomcat
2. 修改系統(tǒng)host,加域名
    mac/linux:etc/hosts
    windows: C:\Windows\System32\drivers\etc\hosts

3.ping 第二步添加的域名,驗(yàn)證host生效


4.編輯nginx的配置文件
在${ngnix}/conf/ngnix.conf配置文件下,在http節(jié)點(diǎn)下新增include vhost/*.conf;新增一個(gè)superzqbo.com.conf文件
upstream www.superzqbo.com{
    server superzqbo.com:8080;
    server superzqbo.com:9080;
}
server {
    listen 80;
    autoindex on;
    server_name superzqbo.com;
    access_log c:/access.log combined;
    index index.html index.htm index.jsp index.php;
    #error_page 404 /404.html;
   
    location / {
        proxy_pass http://www.test123.com;
        add_header Access-Control-Allow-Origin *;
    }
}


5.啟動(dòng)nginx:

#注意:nginx服務(wù)的默認(rèn)端口是80,不要修改
效果

2.使用權(quán)重的策略

此時(shí)如果在訪問(wèn)www.superzqbo.com/superzqbo.com則9080出現(xiàn)的概率明顯高于8080.

upstream www.superzqbo.com {
    server www.superzqbo.com:8080 weight=1;
    server www.superzqbo.com:9080 weight=5;

}

server {
    listen 80;
    autoindex on;
    server_name superzqbo.com www.superzqbo.com;
    access_log /usr/local/nginx/logs/access.log combined;
    index index.html index.htm index.jsp index.php;

    location / {
        proxy_pass http://www.superzqbo.com;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容