Nginx中反向代理+負(fù)載均衡+服務(wù)器宕機(jī)解決辦法詳解
1、反向代理作用
保證系統(tǒng)安全,不暴露服務(wù)器IP,利用nginx服務(wù)器,利用內(nèi)網(wǎng)ip進(jìn)行訪問,避免出現(xiàn)攻擊服務(wù)器的情況
啟動(dòng)本地tomact,127.0.0.1:8080可以訪問到tomcat管理頁面
2、反向代理的效果
通過 bbs.liaoxiang.com 可以訪問到我的tomcat管理頁面(跳轉(zhuǎn)到//127.0.0.1:8080/),這里需要在本地hosts文件添加鏈接指向127.0.0.1
(注意:要通過連接訪問本地地址需要修改hosts文件,百度即可)
- 下載nginx到本地
- 啟動(dòng)nginx,通過127.0.0.1可以訪問到nginx的主頁
- 配置文件nginx.conf
server { listen 80; server_name bbs.liaoxiang.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://127.0.0.1:8080; index index.html index.htm; } ....
配置完成。重啟nginx,就可以通過bbs.liaoxiang.com訪問到我的tomcat頁面
3、負(fù)載均衡
就是多臺(tái)服務(wù)器情況下實(shí)現(xiàn)均衡訪問的問題
在nginx.conf中配置upstream,可以實(shí)現(xiàn)負(fù)載均衡,負(fù)載均衡的作用就是利用多臺(tái)服務(wù)器減輕單臺(tái)服務(wù)器的壓力
配置4臺(tái)tomcat服務(wù)器,ip:192.168.10.150,192.168.10.151,192.168.10.152,192.168.10.153
都默認(rèn)8080端口
配置nginx服務(wù)器:
server { listen 80; server_name bbs.liaoxiang.com; #charset koi8-r; #access_log logs/host.access.log main; upstream myupstream { #weight 值越大,負(fù)載權(quán)重越大,請求次數(shù)越多 #max_fails 允許請求失敗的次數(shù),超過次數(shù)后,轉(zhuǎn)發(fā)到下一個(gè)服務(wù)器,當(dāng)有max_fails個(gè)請求失敗,就表示后端的服務(wù)器不可用,默認(rèn)為1,將其設(shè)置為0可以關(guān)閉檢查 #fail_timeout 指定時(shí)間內(nèi)無響應(yīng)則失敗, 在以后的fail_timeout時(shí)間內(nèi)nginx不會(huì)再把請求發(fā)往已檢查出標(biāo)記為不可用的服務(wù)器 #down 表示當(dāng)前server不參與負(fù)載 #backup 其他非backup server都忙的時(shí)候,backup server作為備用服務(wù)器,將請求轉(zhuǎn)發(fā)到backup服務(wù)器 server 192.168.10.150:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.10.151:8080 weight=2 max_fails=2 fail_timeout=30s; server 192.168.10.152:8080 down; #server 192.168.10.153:8080 down; } location / { #反向代理 proxy_pass http://myupstream; index index.html index.htm; } ....
這里啟動(dòng)nginx會(huì)出現(xiàn)錯(cuò)誤,需要在http大括號(hào)第一行加上:server_names_hash_bucket_size 64;
然后就訪問nginx地址,如果配置了反向代理,請用反向代理地址也可以訪問。訪問三次時(shí)可以發(fā)現(xiàn)150服務(wù)器處理了一次,151處理了兩次,成功實(shí)現(xiàn)了負(fù)載均衡
4、應(yīng)用服務(wù)器宕機(jī)
解決辦法
配置文件nginx.conf
server { listen 80; server_name bbs.liaoxiang.com; #charset koi8-r; #access_log logs/host.access.log main; upstream myupstream { #weight 值越大,負(fù)載權(quán)重越大,請求次數(shù)越多 #max_fails 允許請求失敗的次數(shù),超過失敗次數(shù)后,轉(zhuǎn)發(fā)到下一個(gè)服務(wù)器,當(dāng)有max_fails個(gè)請求失敗,就表示后端的服務(wù)器不可用,默認(rèn)為1,將其設(shè)置為0可以關(guān)閉檢查 #fail_timeout 指定時(shí)間內(nèi)無響應(yīng)則失敗, 在以后的fail_timeout時(shí)間內(nèi)nginx不會(huì)再把請求發(fā)往已檢查出標(biāo)記為不可用的服務(wù)器 #down 表示當(dāng)前server不參與負(fù)載 #backup 其他非backup server都忙的時(shí)候,backup server作為備用服務(wù)器,將請求轉(zhuǎn)發(fā)到backup服務(wù)器 server 192.168.10.150:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.10.151:8080 weight=2 max_fails=2 fail_timeout=30s; server 192.168.10.152:8080 down; #server 192.168.10.153:8080 myupstream; } location / { proxy_pass http://myupstream; index index.html index.htm; #這里配置宕機(jī)檢測,都設(shè)置為1秒,這是有了負(fù)載均衡過后配置的,如果訪問時(shí)掛了一個(gè)服務(wù)器,1秒不響應(yīng)就自動(dòng)切換到另外應(yīng)用服務(wù)器進(jìn)行訪問 proxy_connect_timeout 1; proxy_send_timeout 1; proxy_read_timeout 1; } ....
重啟關(guān)閉其中一個(gè)服務(wù)器做測試,關(guān)閉后訪問,當(dāng)訪問到已經(jīng)宕機(jī)的服務(wù)器時(shí),很明顯的發(fā)現(xiàn)瀏覽器會(huì)加載一秒鐘(設(shè)置的一秒監(jiān)聽)過后重新定向到另外一臺(tái)服務(wù)器,避免了宕機(jī)出現(xiàn)不能訪問的情況。
到此這篇關(guān)于Nginx中反向代理+負(fù)載均衡+服務(wù)器宕機(jī)解決辦法詳解的文章就介紹到這了,更多相關(guān)Nginx反向代理+負(fù)載均衡+服務(wù)器宕機(jī)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx負(fù)載均衡下的webshell上傳的實(shí)現(xiàn)
本文主要介紹了nginx負(fù)載均衡下的webshell上傳的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03nginx 配置代理服務(wù)地址最后多加反斜杠和不加反斜杠的區(qū)別小結(jié)
在使用Nginx配置代理服務(wù)時(shí),地址最后是否添加反斜杠(/)會(huì)對(duì)代理的URL處理產(chǎn)生影響,下面就來具體介紹一下,感興趣的可以了解一下2024-08-08權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法
這篇文章主要介紹了權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法,本文中導(dǎo)致 403 Forbidden錯(cuò)誤的原因是配置文件中沒有指明一個(gè)用戶,需要的朋友可以參考下2014-08-08