Nginx+Tomcat反向代理與負(fù)載均衡的實(shí)現(xiàn)
客戶端想要直接與目標(biāo)服務(wù)器連接,但是無(wú)法直接進(jìn)行連接,就需要先去訪問(wèn)中間的代理服務(wù)器,讓代理服務(wù)器代替客戶端去訪問(wèn)目標(biāo)服務(wù)器
反向代理屏蔽掉服務(wù)器的信息,經(jīng)常用在多臺(tái)服務(wù)器的分布式部署上,像一些大型網(wǎng)站,由于訪問(wèn)人數(shù)很多,就需要多臺(tái)服務(wù)器來(lái)解決,由一個(gè)反向代理服務(wù)器來(lái)代理,客戶端發(fā)來(lái)請(qǐng)求,先由反向代理服務(wù)器,按一定的規(guī)則分發(fā)到明確的服務(wù)器,但客戶端不知道是哪臺(tái)服務(wù)器,常用Nginx做反向代理
二、負(fù)載均衡什么是負(fù)載均衡將工作任務(wù)或者訪問(wèn)請(qǐng)求進(jìn)行平衡,然后分?jǐn)偟蕉鄠€(gè)單元、服務(wù)器或者組件上執(zhí)行,解決高并發(fā),高可用(單點(diǎn)故障)、擴(kuò)展性(水平伸縮)的最高解決方案
代碼倉(cāng)庫(kù)定義開發(fā)人員分別將前段和后端代碼都存入自己的代碼倉(cāng)庫(kù),由分支進(jìn)行分類(分支、主分支、分分支)分類儲(chǔ)存后,打包上傳服務(wù)器
后端打包工具M(jìn)aven(打包為War、jar包)
前段打包工具Npm、nodejs
一般前端打包后會(huì)放入/usr/local/nginx/html目錄當(dāng)中(nginx配置)
后端的打包回放入在Tomcat服務(wù)里的Webapps中
私有倉(cāng)庫(kù) gitlab
公有倉(cāng)庫(kù) github
分流策略Nginx負(fù)載均衡模式(rr負(fù)載均衡模式)
每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果超過(guò)了最大失敗次數(shù)后(max_fails)默認(rèn)為1,在失效時(shí)間內(nèi)(fail_timeout)默認(rèn)為10秒,該節(jié)點(diǎn)失效權(quán)重變?yōu)?,超過(guò)失效時(shí)間后,則恢復(fù)正常,或者全部節(jié)點(diǎn)都為down后,那么將所有節(jié)點(diǎn)都恢復(fù)為有效,繼續(xù)探測(cè),一般來(lái)說(shuō)rr可以根據(jù)權(quán)重進(jìn)行均勻分配
權(quán)重least_conn(最少連接)優(yōu)先將客戶端請(qǐng)求調(diào)度到當(dāng)前連接最少的服務(wù)器
ip_hash(負(fù)載均衡模式)每個(gè)請(qǐng)求按訪問(wèn)ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問(wèn)一個(gè)后端的服務(wù)器,可以解決session的問(wèn)題,但是ip_hash會(huì)造成負(fù)載不均,有的服務(wù)請(qǐng)求接受多,有的請(qǐng)求接受少,所以不建議采用ip_hash模式,session共享問(wèn)題可用后端服務(wù)的session共享代替nginx的ip_hash
fair(第三方負(fù)載均衡模式)按后端的服務(wù)器響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的有限分配
url_hash(第三方負(fù)載均衡模式)基于用戶請(qǐng)求的url做hash,和ip_hash算法類似,是對(duì)每個(gè)請(qǐng)求按url的hash結(jié)果分配,使每個(gè)URL定向到同一個(gè)后端服務(wù)器,但也會(huì)造成分配不均的問(wèn)題,這種模式后端服務(wù)器為緩存時(shí)比較好
三、Nginx+Tomcat反向代理與負(fù)載均衡部署第一步 關(guān)閉防火墻和安全機(jī)制
命令:systemctl stop firewalld
setenforce 0
第二步 安裝依賴環(huán)境
命令:yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
第三步 編譯安裝
命令:./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module
第四步 編譯
命令:make -j4 && make install
第五步 添加系統(tǒng)識(shí)別
命令:ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
第六步 編輯配置文件
命令:vim /lib/systemd/system/nginx.service
第七步 賦權(quán)并啟動(dòng)服務(wù)
命令:chmod 777 /lib/systemd/system/nginx.service
systemctl start nginx
systemctl enable nginx
第八步 查看指定端口服務(wù)
命令:lsof -i:8080
第九步 用瀏覽器測(cè)試Nginx
第十步 部署Tomcat服務(wù)器
第十一步 解包到指定目錄并優(yōu)化路徑
命令:tar xf [壓縮包名] -C [指定路徑]
第十二步 修改配置文件
命令:vim /etc/profile
第十三步 刷新文件
命令:source /etc/profile
第十四步 重啟Tomcat
命令:/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
第十五步 查看對(duì)應(yīng)端口
命令:lsof -i:8080
第十六步 安裝第三臺(tái)虛擬機(jī)
第十七步 創(chuàng)建目錄編輯動(dòng)態(tài)頁(yè)面
第十八步 修改配置文件
第十九步 重啟Tomcat
第二十步 查看對(duì)應(yīng)端口
第二十一步 用瀏覽器進(jìn)行測(cè)試
第二十二步 第三臺(tái)虛擬機(jī)配置Tomcat
第二十三步 修改動(dòng)態(tài)頁(yè)面內(nèi)容
第二十四步 修改第一臺(tái)靜態(tài)頁(yè)面
第二十五步 準(zhǔn)備一個(gè)靜態(tài)圖片
第二十六步 配置Nginx文件
第二十七步 修改配置內(nèi)容
第二十八步 用瀏覽器進(jìn)行測(cè)試
以上就是Nginx+Tomcat反向代理與負(fù)載均衡的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Nginx+Tomcat反向代理與負(fù)載均衡的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
