Tomcat集群包括單機(jī)多部署應(yīng)用和多機(jī)單部署應(yīng)用兩種兰绣,在本文當(dāng)中使用的是單機(jī)多部署的方式。
多機(jī)部署正常部署即可编振,不需要額外做修改缀辩,需要注意多是,多機(jī)部署一般要求每個服務(wù)器之安裝一個tomcat,并且他們之間是網(wǎng)絡(luò)互通的臀玄,此時才可以進(jìn)行集群瓢阴。
單機(jī)部署比較繁瑣,下面進(jìn)行說明健无。
一.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)境)
####第一個tomcat不變
####打開第二個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
####如果不配置此項的話,可能造成在tomcat2啟動時加載的配置信息時tomcat1的累贤,所以在進(jìn)行Tomcat集群的時候一般都要進(jìn)行添加叠穆。
#3.打開第二個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)行入兩個tomcat的bin目錄,執(zhí)行startup.sh
#5.檢查兩個tomcat的啟動日志
#6.訪問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配置文件
第一個不變祷嘶,第二個,打開第二個tomcat目錄下的bin下catalina.bat夺溢,然后和mac下進(jìn)行同樣的操作即可。
后面的不走都一樣烛谊。
二.nginx負(fù)載均衡配风响、常用策略、場景及特點
1.輪訓(xùn)(默認(rèn)丹禀,可以看成權(quán)重是1)
優(yōu)點:實現(xiàn)簡單
缺點:沒有考慮每臺服務(wù)器的處理能力
upstream www.happymmall.com{
server www.happymmall.com:8080;
server www.happymmall.com:9080;
}
2.權(quán)重(最常用状勤,只代表訪問的概率,不一定是次數(shù))
優(yōu)點:考慮了每臺服務(wù)器的處理能力双泪,訪問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)點:可以實現(xiàn)同一用戶訪問同一臺服務(wù)器
缺點:ip hash不一定平均
upstream www.happymmall.com{
ip_hash;
server www.happymmall.com:8080 ;
server www.happymmall.com:9080 ;
}
4.url hash(需要安裝一個第三方的插件)
優(yōu)點:實現(xiàn)同一個服務(wù)訪問同一個服務(wù)器
缺點:url hash請求不平均,請求頻繁的url會請求到同一服務(wù)器上面
upstream www.happymmall.com{
server www.happymmall.com:8080 ;
server www.happymmall.com:9080 ;
hash $request_uri;
}
5. fair(第三方)
特點:按照后端服務(wù)器的響應(yīng)時間來進(jìn)行分配焙矛,響應(yīng)時間短的優(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. 啟動2個tomcat
2. 修改系統(tǒng)host葫盼,加域名
mac/linux:etc/hosts
windows: C:\Windows\System32\drivers\etc\hosts
3.ping 第二步添加的域名,驗證host生效
4.編輯nginx的配置文件
在${ngnix}/conf/ngnix.conf配置文件下村斟,在http節(jié)點下新增include vhost/*.conf;新增一個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.啟動nginx:
#注意:nginx服務(wù)的默認(rèn)端口是80贫导,不要修改
效果
2.使用權(quá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;
}
}