電商項目中Tomcat集羣配置帶來的主要問題:
1.session登錄信息存取問題
2.服務器定時任務併發問題
解決方案:
1.nginx hash ip
優點:不改變現有架構,直接橫向擴展
缺點:分配不平均、IP變化無法服務
2.nginx負載均衡 + session server+分佈式鎖
單機部署多應用
1.在/etc/profile 配置多個Tomcat環境變量
2.第一個tomcat不變,在第二個tomcat的bin目錄下打開catalina.sh,給catalina_base 和 Catalina——home重新賦值成系統變量
3.打開${tomcat}/conf/server.xml 修改三個端口號8005、訪問8080、AJP/1.3 8009,默認增加1000,注意避免衝突
4.啓動
多機部署多應用
如果一個機器部署一個tomcat實例,不需要修改端口號,多個服務器部署要保證網絡互通,Nginx可以安裝在任意一臺機器,也可獨立出來。
Nginx負載均衡常用策略
1.輪詢(默認)
優點:實現簡單 缺點:不考慮服務器處理能力
upstream www.lmall.com{
server www.lmall.com:8080;
server www.lmall.com:9080;
}
2.權重
優點:考慮了每臺處理器能力不同
upstream www.lmall.com{
server www.lmall.com:8080 weight = 15;
server www.lmall.com:9080 weight = 10;
}
weight不配置默認爲1,多個配置權重的節點比較,比較的是相對值,如15:10,表示的是概率
3.ip hash
優點:同一用戶訪問同一服務器
缺點:分配不平均
upstream www.lmall.com{
ip_hash;
server www.lmall.com:8080;
server www.lmall.com:9080;
}
4.url hash 第三方
優點:同一服務訪問同一服務器
缺點:不平均
upstream www.lmall.com{
server www.lmall.com:8080;
server www.lmall.com:9080;
hash $request_uri;
}
需要第三方插件
5.fair 第三方
按後端服務器響應時間分配,時間短優先
upstream www.lmall.com{
server www.lmall.com:8080;
server www.lmall.com:9080;
fair;
}
**負載均衡參數及擴展點 **
upstream www.lmall.com{
ip_hash;
server www.lmall.com:8080 down; 暫時不參與負載
server www.lmall.com:9080 backup;其他所有非backup機器down或忙時請求backup
}
集羣搭建
-
啓動tomcat服務
-
替換Tomcat2Logo (方便區分)
${tomcat2}/webapps/ROOT/tomcat.png (如果部署過項目可能找不到,此爲新安裝的默認路徑) -
修改瀏覽器所在機器 /etc/hosts host 127.0.0.1 www.lmall.com
-
驗證host ping www.lmall.com,清除瀏覽器緩存、重啓
-
啓動Nginx(默認端口80)
-
vim ${nginx}/conf/nginx.conf 在http節點下增加include vhost/*.conf; 分開域名的配置文件、增加tomcat集羣負載均衡的配置
-
創建vhost/www.lmall.com.conf文件
-
${nginx}/sbin/ sudo ./nginx -s reload
www.lmall.com.conf文件配置
autoindex - 如果使用文件夾轉發,會自動生成索引
index 訪問首頁優先級