您好,登錄后才能下訂單哦!
Centos7上如何配置nginx的負(fù)載均衡,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
在配置nginx負(fù)載均衡前.我們需要明白幾個(gè)名詞的概念
注: 如果不小心忘了tomcat和nginx的啟動,關(guān)閉命令,可參考寫在文章最后的命令
1 什么是nginx呢?
Nginx是一個(gè)web服務(wù)器和反向代理服務(wù)器,用于HTTP、HTTPS、SMTP、POP3和IMAP協(xié)議.
2 什么是反向代理呢?
反向代理隱藏了真實(shí)的服務(wù)端,當(dāng)我們請求 www.baidu.com 的時(shí)候,就像撥打10086一樣,背后可能有成千上萬臺服務(wù)器為我們服務(wù),但具體是哪一臺,你不知道,也不需要知道,你只需要知道反向代理服務(wù)器是誰就好了,www.baidu.com 就是我們的反向代理服務(wù)器,反向代理服務(wù)器會幫我們把請求轉(zhuǎn)發(fā)到真實(shí)的服務(wù)器那里去。Nginx就是性能非常好的反向代理服務(wù)器,用來做負(fù)載均衡。
3 什么是負(fù)載均衡呢?
負(fù)載均衡(Load Balancing)是一種將任務(wù)分派到多個(gè)服務(wù)端進(jìn)程的方法。例如,將一個(gè)HTTP請求派發(fā)到實(shí)際的Web服務(wù)器中執(zhí)行的過程就涉及負(fù)載均衡的實(shí)現(xiàn)。一個(gè)HTTP請求到達(dá)Web服務(wù)器,這中間涉及多個(gè)過程,也存在多種不同負(fù)載均衡的方法。
4 負(fù)載均衡有什么作用呢?
轉(zhuǎn)發(fā)功能
按照一定的算法【權(quán)重、輪詢】,將客戶端請求轉(zhuǎn)發(fā)到不同應(yīng)用服務(wù)器上,減輕單個(gè)服務(wù)器壓力,提高系統(tǒng)并發(fā)量。
故障移除
通過心跳檢測的方式,判斷應(yīng)用服務(wù)器當(dāng)前是否可以正常工作,如果服務(wù)器期宕掉,自動將請求發(fā)送到其他應(yīng)用服務(wù)器。
恢復(fù)添加
如檢測到發(fā)生故障的應(yīng)用服務(wù)器恢復(fù)工作,自動將其添加到處理用戶請求隊(duì)伍中。
5 負(fù)載均衡的分發(fā)策略是什么呢?
Nginx 的 upstream目前支持的分配算法:
1)、輪詢 ——1:1 輪流處理請求(默認(rèn))
每個(gè)請求按時(shí)間順序逐一分配到不同的應(yīng)用服務(wù)器,如果應(yīng)用服務(wù)器down掉,自動剔除,剩下的繼續(xù)輪詢。
2)、權(quán)重 ——you can you up
通過配置權(quán)重,指定輪詢幾率,權(quán)重和訪問比率成正比,用于應(yīng)用服務(wù)器性能不均的情況。
3)、ip_哈希算法
每個(gè)請求按訪問ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)應(yīng)用服務(wù)器,可以解決session共享的問題。
此次模擬就不在多個(gè)機(jī)器上配了,我們把三個(gè)tomcat都裝到一臺機(jī)器上的不同目錄下,分別給他們不同的端口,修改下
他們的首頁,模擬一下負(fù)載均衡
一個(gè)nginx服務(wù)器,三個(gè)tomcat服務(wù)器
nginx的安裝我前面有寫過,同志們可參考這篇文章
tomcat就更簡單了,直接上傳解壓,就可以在瀏覽器訪問ip使用了,打不開,關(guān)閉下防火墻試試
我的安裝目錄
nginx /opt/nginx/nginx-1.8.0
tomcat /opt/tomcat/apache-tomcat-7.0.57
test1號tomcat /opt/tomcattest1/apache-tomcat-7.0.57
test2號tomcat /opt/tomcattest2/apache-tomcat-7.0.57
我們用tomcat來給test1號和test2號做負(fù)載均衡
注意: 修改tomcat的配置文件前,如果啟動了tomcat,就關(guān)了再修改
vi /opt/tomcattest1/apache-tomcat-7.0.57/conf/server.xml
改三個(gè)地方,把三個(gè)沒加注釋的端口全部加1
注意: 要改沒加注釋的,加了注釋的改了也沒用
8005->8006
8080->8081
8009->8010
cd /opt/tomcattest1/apache-tomcat-7.0.57/webapps/ROOT vi index.jsp 在<body>標(biāo)簽下加個(gè)h2標(biāo)簽作區(qū)分 位置: <body> <h2>111111111111111111111111111111</h2>
在瀏覽器訪問
http://192.168.220.111/8081 用你自己的ip
跟上面一樣,把要修改的三個(gè)端口都加2 就行了
注意: 要改沒加注釋的,加了注釋的改了也沒用
8005->8007
8080->8082
8009->8011
瀏覽器訪問
http://192.168.220.111/8082 用你自己的ip
注意: 修改nginx的配置文件前,如果啟動了nginx,就關(guān)了再修改
修改nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
shift+g 跳到最下邊,在最后的 } 前加入
upstream tomcatserver1 { server 192.168.220.111:8081 ; server 192.168.220.111:8082 ; } server { listen 80; server_name love.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://tomcatserver1; index index.html index.htm; } }
解釋一下
一個(gè)upstream 對應(yīng)一個(gè)server
當(dāng)我們在瀏覽器輸入 love.com (自己隨便寫個(gè)喜歡的域名),會先找到location里的 proxy_pass 后面的 http://tomcatserver1,
再找到tomcatserver1對應(yīng)的相同名字的upstream ,然后進(jìn)去找代理的ip
此時(shí)還需要在本地hosts里加上我們的ip就可以在瀏覽器訪問了
在windows系統(tǒng)下,進(jìn)入
C:\Windows\System32\drivers\etc 目錄下,打開hosts文件,在最下邊加上
192.168.220.111 love.com 你自己的ip 和你自己配置的域名
然后啟動nginx
在瀏覽器輸入 http://192.168.220.111
不停的刷新頁面,會發(fā)現(xiàn)1號tomcat 和2 號tomcat近乎于交替出現(xiàn),也就是最開始我們提到的負(fù)載均衡的三種分發(fā)策略中的輪詢,
近乎1:1出現(xiàn)
擴(kuò)展:
然而在現(xiàn)實(shí)開發(fā)中,假設(shè)我們的多臺服務(wù)器的性能好壞不一樣,我們希望性能較好的1 號服務(wù)器多代理點(diǎn)url,就可以進(jìn)行
權(quán)重或hash配置
這里附上幾條可能會用到的命令
Tomcat常用命令
啟動Tomcat: 進(jìn)入tomcat目錄/bin,然后./startup.sh 停止Tomcat: 進(jìn)入tomcat目錄/bin,然后./shutdown.sh
Nginx 常用命令
注意nginx的配置端口的配置文件在 /usr/local/nginx/conf 并不是在解壓目錄下 啟動nginx cd usr/local/nginx/sbin/ ./nginx 重啟nginx 有兩種方法 1 先關(guān)閉再重啟 ./nginx -s quit 或者 ./nginx -s stop ./nginx 2 直接重啟 ./nginx -s reload 檢查是否已經(jīng)安裝有nginx及對應(yīng)目錄 find /|grep nginx.conf 查看nginx占用的的端口 ps -ef| grep nginx 需要?dú)⒌舻脑? kill -9 xx
關(guān)于Centos7上如何配置nginx的負(fù)載均衡問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。