久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

使用nginx進(jìn)行負(fù)載均衡的搭建全過程

瀏覽:19日期:2023-03-13 15:37:36
目錄
  • 1. nginx負(fù)載均衡介紹
  • 2. nginx負(fù)載均衡策略
    • 2.1 輪詢
      • 2.1.1 普通輪詢方式
      • 2.1.2 權(quán)重輪詢方式
    • 2.2 最少連接
      • 2.3 ip hash
      • 3. nginx負(fù)載均衡搭建示例
        • 3.1 tomcat配置
          • 3.2 nginx配置
          • 總結(jié)

            1. nginx負(fù)載均衡介紹

            nginx應(yīng)用場景之一就是負(fù)載均衡。在訪問量較多的時(shí)候,可以通過負(fù)載均衡,將多個(gè)請求分?jǐn)偟蕉嗯_(tái)服務(wù)器上,相當(dāng)于把一臺(tái)服務(wù)器需要承擔(dān)的負(fù)載量交給多臺(tái)服務(wù)器處理,進(jìn)而提高系統(tǒng)的吞吐率;另外如果其中某一臺(tái)服務(wù)器掛掉,其他服務(wù)器還可以正常提供服務(wù),以此來提高系統(tǒng)的可伸縮性與可靠性。

            下圖為負(fù)載均衡示例圖,當(dāng)用戶請求發(fā)送后,首先發(fā)送到負(fù)載均衡服務(wù)器,而后由負(fù)載均衡服務(wù)器根據(jù)配置規(guī)則將請求轉(zhuǎn)發(fā)到不同的web服務(wù)器上。

            2. nginx負(fù)載均衡策略

            以下截圖為nginx官網(wǎng)文檔

            nginx內(nèi)置負(fù)載均衡策略主要分為三大類,分別是輪詢、最少連接和ip hash

            • 最少連接

            請求分配給活動(dòng)連接數(shù)最少的服務(wù)器,哪臺(tái)服務(wù)器連接數(shù)最少,則把請求交給哪臺(tái)服務(wù)器,由nginx統(tǒng)計(jì)服務(wù)器連接數(shù)

            • ip hash

            基于客戶端ip的分配方式

            2.1 輪詢

            以循環(huán)方式分發(fā)對應(yīng)用服務(wù)器的請求,將請求平均分發(fā)到每臺(tái)服務(wù)器上。

            2.1.1 普通輪詢方式

            該方式是默認(rèn)方式,輪詢適合服務(wù)器配置相當(dāng),無狀態(tài)且短平快的服務(wù)使用。另外在輪詢中,如果服務(wù)器掛掉,會(huì)自動(dòng)剔除該服務(wù)器。

            http {    # 定義轉(zhuǎn)發(fā)分配規(guī)則    upstream myapp1 {server srv1.com; # 要轉(zhuǎn)發(fā)到的服務(wù)器,如ip、ip:端口號(hào)、域名、域名:端口號(hào)server srv2.com:8088;server 192.168.0.100:8088;    }    server {listen 80; # nginx監(jiān)聽的端口location / {	# 使用myapp1分配規(guī)則,即剛自定義添加的upstream節(jié)點(diǎn)	# 將所有請求轉(zhuǎn)發(fā)到myapp1服務(wù)器組中配置的某一臺(tái)服務(wù)器上    proxy_pass http://myapp1; }    }}

            2.1.2 權(quán)重輪詢方式

            如果在 upstream 中配置的server參數(shù)后追加 weight 配置,則會(huì)根據(jù)配置的權(quán)重進(jìn)行請求分發(fā)。此策略可以與least_conn和ip_hash結(jié)合使用,適合服務(wù)器的硬件配置差別比較大的情況。

            # 定義轉(zhuǎn)發(fā)分配規(guī)則upstream myapp1 {	server srv1.com weight=1; # 該臺(tái)服務(wù)器接受1/6的請求量	server srv2.com:8088 weight=2; # 該臺(tái)服務(wù)器接受2/6的請求量	server 192.168.0.100:8088 weight=3; # 該臺(tái)服務(wù)器接受3/6的請求量;}

            2.2 最少連接

            輪詢算法是把請求平均的轉(zhuǎn)發(fā)給各個(gè)后端,使它們的負(fù)載大致相同;但是,有些請求占用的時(shí)間很長,會(huì)導(dǎo)致其所在的后端負(fù)載較高。這種情況下,least_conn這種方式就可以達(dá)到更好的負(fù)載均衡效果,適合請求處理時(shí)間長短不一造成服務(wù)器過載的情況。

            # 定義轉(zhuǎn)發(fā)分配規(guī)則upstream myapp1 {	least_conn; # 把請求分派給連接數(shù)最少的服務(wù)器	server srv1.com;	server srv2.com:8088;	server 192.168.0.100:8088;}

            2.3 ip hash

            這個(gè)方法確保了相同的客戶端的請求一直發(fā)送到相同的服務(wù)器,這樣每個(gè)訪客都固定訪問一個(gè)后端服務(wù)器。如用戶需要分片上傳文件到服務(wù)器下,然后再由服務(wù)器將分片合并,這時(shí)如果用戶的請求到達(dá)了不同的服務(wù)器,那么分片將存儲(chǔ)于不同的服務(wù)器目錄中,導(dǎo)致無法將分片合并,該場景則需要使用ip hash策略。

            需要注意的是,ip_hash不能與backup同時(shí)使用,另外當(dāng)有服務(wù)器需要剔除,必須手動(dòng)down掉,此模式適合有狀態(tài)服務(wù),比如session。

            # 定義轉(zhuǎn)發(fā)分配規(guī)則upstream myapp1 {	ip_hash; # #保證每個(gè)請求固定訪問一個(gè)后端服務(wù)器	server srv1.com;	server srv2.com:8088;	server 192.168.0.100:8088;}

            3. nginx負(fù)載均衡搭建示例

            該示例使用一臺(tái)nginx作為負(fù)載均衡服務(wù)器,兩臺(tái)tomcat作為web服務(wù)器;可以把三個(gè)服務(wù)均在一臺(tái)機(jī)器進(jìn)行搭建,也可以使用虛擬機(jī)虛擬三臺(tái)機(jī)器,然后進(jìn)行測試。教程這里就只在一臺(tái)機(jī)器進(jìn)行搭建,采用默認(rèn)的權(quán)重方式進(jìn)行配置。

            3.1 tomcat配置

            將兩臺(tái)tomcat解壓出來,配置完畢相應(yīng)的端口,然后在webapps目錄下創(chuàng)建test目錄,然后在test目錄中創(chuàng)建index.html文件,隨便寫入一些內(nèi)容,兩臺(tái)tomcat中test目錄下的index.html文件內(nèi)容要區(qū)分開來,例如寫入1111111 / 222222222,如下圖所示。

            3.2 nginx配置

            首先進(jìn)行nginx的安裝,安裝教程可以參考

            安裝完畢后,進(jìn)入nginx目錄下的conf目錄,編輯 nginx.conf 文件,修改內(nèi)容為在http節(jié)點(diǎn)下增加

            upstream tomcat { # 該部分內(nèi)容與 server 節(jié)點(diǎn)同級(jí)	server tomcat服務(wù)的ip:tomcat服務(wù)的端口號(hào);	server tomcat服務(wù)的ip:tomcat服務(wù)的端口號(hào);}

            server節(jié)點(diǎn)下的location /節(jié)點(diǎn)中,把默認(rèn)的

            location / {	root   html;	index  index.html index.htm;}

            修改為

            location / {	proxy_pass http://tomcat;}

            然后啟動(dòng) 兩臺(tái)tomcat與nginx服務(wù),在瀏覽器輸入nginx服務(wù)的地址:端口,不停刷新頁面,就可以看到每次請求的服務(wù)器發(fā)生了改變。

            總結(jié)

            到此這篇關(guān)于使用nginx進(jìn)行負(fù)載均衡的文章就介紹到這了,更多相關(guān)nginx負(fù)載均衡內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

            標(biāo)簽: Nginx
            相關(guān)文章:
            主站蜘蛛池模板: 新竹市| 西乌珠穆沁旗| 香河县| 昌宁县| 安远县| 永胜县| 汉阴县| 容城县| 海兴县| 苍溪县| 冷水江市| 上饶市| 浏阳市| 石门县| 石阡县| 辰溪县| 淮北市| 仙居县| 清远市| 平乡县| 西乡县| 甘南县| 柞水县| 峨边| 黄冈市| 曲松县| 方山县| 历史| 新昌县| 绥中县| 离岛区| 岳池县| 洪泽县| 河北省| 三亚市| 林口县| 康定县| 涞源县| 丹阳市| 山阳县| 永丰县|