Nginx+Tomcat集群環(huán)境的實(shí)現(xiàn)
一、集群環(huán)境架構(gòu)
一臺(tái)Nginx可以與多臺(tái)Tomcat服務(wù)器掛鉤,此時(shí)客戶端訪問的都是Nginx反向代理的IP地址和端口,然后Nginx通過一些分流策略等等,將流量分配到不同的Tomcat上,最后由Tomcat連接數(shù)據(jù)庫,并處理Java的請(qǐng)求。該圖中的Nginx和MySQL等都是可以繼續(xù)擴(kuò)展的
集群的作用:
(1)負(fù)載均衡:Load-Balance,表示有多臺(tái)服務(wù)器同時(shí)提供服務(wù),每一臺(tái)服務(wù)器的負(fù)載就會(huì)降低,提升性能和并發(fā)量
(2)故障轉(zhuǎn)移:Fall-Over,其中一臺(tái)崩潰,則數(shù)據(jù)流轉(zhuǎn)移到另外一臺(tái)上
二、配置單機(jī)應(yīng)用
配置一個(gè)Nginx+一個(gè)Tomcat
1.確保Tomcat正常訪問,配置參考Tomcat的步驟
開啟:/opt/apache-tomcat-8.0.53/bin/startup.sh 關(guān)閉:/opt/apache-tomcat-8.0.53/bin/shutdown.sh
- 配置Nginx 的核心配置文件 /usr/local/nginx/conf/nginx.conf
#此節(jié)點(diǎn)在 http 節(jié)點(diǎn)下,與 server 節(jié)點(diǎn)同級(jí) upstream mytomcat { ## 指定Tomcat的服務(wù)器IP地址和端口,及權(quán)重(針對(duì)多套Tomcat服務(wù)器時(shí)使用) server 192.168.230.147:8080 weight=1; ##也可以添加第二臺(tái),第三臺(tái),第四臺(tái)等構(gòu)成集群環(huán)境 }
由于nginx默認(rèn)端口為80,而MySQL默認(rèn)端口也是80,因此我將nginx的默認(rèn)端口改為了8088
## 如果通過nginx訪問 http://192.168.230.147:8088/woniusales,則通過 proxy_pass 反向代理將該目錄下的所有請(qǐng)求,轉(zhuǎn)發(fā)給 http://mytomcat/woniusales,其中mytomcat是由upstream節(jié)點(diǎn)定義的名稱 location / { proxy_pass http://mytomcat/woniusales/; # 此處最后務(wù)必添加 / proxy_redirect default; }
# 當(dāng)用戶訪問nginx的80端口下的woniusales時(shí),訪問mytomcat下的woniusales,此節(jié)點(diǎn)在 server 節(jié)點(diǎn)中 location /woniusales/ { proxy_pass http://mytomcat/woniusales/; proxy_redirect default; }
重啟nginx
現(xiàn)在我們就配置好了nginx的單機(jī)反向代理,此時(shí)我們就可以通過訪問nginx來訪問woniusales
原本的8088端口配置的是Nginx,但由于現(xiàn)在配置了nginx的反向代理,于是訪問8088端口時(shí)nginx都會(huì)自動(dòng)將請(qǐng)求遞交給Tomcat服務(wù)器,然后根據(jù)nginx.conf 的配置文件我們可以知道其實(shí)是直接訪問了tomcat下的woniusales。所以現(xiàn)在訪問8088端口就會(huì)自動(dòng)跳轉(zhuǎn)到woniusales頁面呢
三、配置Tomcat集群
1.準(zhǔn)備至少兩臺(tái)可用的Tomcat,確保兩臺(tái)Tomcat連接到同一個(gè)數(shù)據(jù)庫,配置文件在 /opt/apache-tomcat-8.0.53/webapps/woniusales/WEB-INF/classes/db.properties 中
2.確保Nginx所在服務(wù)器,可以正常訪問到這兩臺(tái)Tomcat,如果不能,請(qǐng)檢查防火墻是否放行了Tomcat端口8080等
3.將所有的Tomcat服務(wù)器,配置于nginx核心配置文件/usr/local/nginx/conf/nginx.conf的upstream節(jié)點(diǎn)中
#此節(jié)點(diǎn)在 http 節(jié)點(diǎn)下,與 server 節(jié)點(diǎn)同級(jí) upstream mytomcat { ip_hash; ## ip_hash 使得訪問哪個(gè)IP地址,就將數(shù)據(jù)交給哪個(gè)Tomcat ## 指定Tomcat的服務(wù)器IP地址和端口,及權(quán)重(針對(duì)多套Tomcat服務(wù)器時(shí)使用) server 192.168.230.148:8080 weight=2; server 192.168.230.147:8080 weight=1; ##也可以添加第二臺(tái),第三臺(tái),第四臺(tái)等構(gòu)成集群環(huán)境 } 其他配置保持不變
4.重啟nginx
/usr/local/nginx/sbin/nginx -s reload
5.測(cè)試集群的功能
nginx默認(rèn)端口是80
使用192.168.112.1訪問一下192.168.112.188/woniusales 我們?nèi)タ碼ccess_log,先去192.168.112.188上的Tomcat發(fā)現(xiàn)并沒有日志記錄,然后再去192.168.112.1上面去看發(fā)現(xiàn)有日志記錄,說明該流量確實(shí)是被nginx轉(zhuǎn)發(fā)給了192.168.112.1,從側(cè)面也驗(yàn)證了192.168.112.188上的nginx確實(shí)搭載了兩臺(tái)Tomcat,不然也不會(huì)將訪問192.168.112.188:80的流量轉(zhuǎn)發(fā)給192.168.112.1。
但我們明明配置的是ip_hash,但為什么訪問的是192.168.112.188,怎么流量都轉(zhuǎn)發(fā)給了192.168.112.1呢,也許是因?yàn)榕涞臋?quán)重比較高吧
(1)確保所有Tomcat節(jié)點(diǎn)連接到同一個(gè)數(shù)據(jù)庫,保持?jǐn)?shù)據(jù)同步
(2)必須確??蛻舳擞胁煌腎P地址訪問,Nginx的集群會(huì)根據(jù)IP地址來分給后臺(tái)服務(wù)器
(3)在Tomcat節(jié)點(diǎn)上,tall -f /opt/apache-tomcat/logs/access.log
實(shí)時(shí)刷新訪問日志,如果有請(qǐng)求進(jìn)來,可以看到客戶端的IP地址
到此這篇關(guān)于Nginx+Tomcat集群環(huán)境的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx Tomcat集群環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx?gzip?動(dòng)態(tài)靜態(tài)壓縮詳解
這篇文章主要為大家介紹了nginx?gzip?動(dòng)態(tài)靜態(tài)壓縮實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03借用nginx.vim工具進(jìn)行語法高亮和格式化配置nginx.conf文件
今天小編就為大家分享一篇關(guān)于借用nginx.vim工具進(jìn)行語法高亮和格式化配置nginx.conf文件,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02Nginx通過代理服務(wù)器訪問目標(biāo)接口的實(shí)現(xiàn)
本文主要介紹了Nginx通過代理服務(wù)器訪問目標(biāo)接口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08nginx日志切割定時(shí)任務(wù)的實(shí)現(xiàn)
Nginx日志切割能有效管理日志,便于查詢、控制存儲(chǔ)空間、提高處理效率、方便備份與歸檔,減少數(shù)據(jù)丟失風(fēng)險(xiǎn),實(shí)現(xiàn)方法包括重命名日志文件、編寫定時(shí)日志腳本和設(shè)置crontab定時(shí)任務(wù)2024-11-11nginx通過location配置代理的原理和實(shí)現(xiàn)方式
這篇文章主要介紹了nginx通過location配置代理的原理和實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03