<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
nginx應用場景之一就是負載均衡。在存取量較多的時候,可以通過負載均衡,將多個請求分攤到多臺伺服器上,相當於把一臺伺服器需要承擔的負載量交給多臺伺服器處理,進而提高系統的吞吐率;另外如果其中某一臺伺服器掛掉,其他伺服器還可以正常提供服務,以此來提高系統的可伸縮性與可靠性。
下圖為負載均衡範例圖,當用戶請求傳送後,首先傳送到負載均衡伺服器,而後由負載均衡伺服器根據設定規則將請求轉發到不同的web伺服器上。
以下截圖為nginx官網檔案
nginx內建負載均衡策略主要分為三大類,分別是輪詢、最少連線和ip hash
請求分配給活動連線數最少的伺服器,哪臺伺服器連線數最少,則把請求交給哪臺伺服器,由nginx統計伺服器連線數
基於使用者端ip的分配方式
以迴圈方式分發對應用伺服器的請求,將請求平均分發到每臺伺服器上。
該方式是預設方式,輪詢適合伺服器設定相當,無狀態且短平快的服務使用。另外在輪詢中,如果伺服器掛掉,會自動剔除該伺服器。
http { # 定義轉發分配規則 upstream myapp1 { server srv1.com; # 要轉發到的伺服器,如ip、ip:埠號、域名、域名:埠號 server srv2.com:8088; server 192.168.0.100:8088; } server { listen 80; # nginx監聽的埠 location / { # 使用myapp1分配規則,即剛自定義新增的upstream節點 # 將所有請求轉發到myapp1伺服器組中設定的某一臺伺服器上 proxy_pass http://myapp1; } } }
如果在 upstream 中設定的server引數後追加 weight 設定,則會根據設定的權重進行請求分發。此策略可以與least_conn和ip_hash結合使用,適合伺服器的硬體設定差別比較大的情況。
# 定義轉發分配規則 upstream myapp1 { server srv1.com weight=1; # 該臺伺服器接受1/6的請求量 server srv2.com:8088 weight=2; # 該臺伺服器接受2/6的請求量 server 192.168.0.100:8088 weight=3; # 該臺伺服器接受3/6的請求量; }
輪詢演演算法是把請求平均的轉發給各個後端,使它們的負載大致相同;但是,有些請求佔用的時間很長,會導致其所在的後端負載較高。這種情況下,least_conn這種方式就可以達到更好的負載均衡效果,適合請求處理時間長短不一造成伺服器過載的情況。
# 定義轉發分配規則 upstream myapp1 { least_conn; # 把請求分派給連線數最少的伺服器 server srv1.com; server srv2.com:8088; server 192.168.0.100:8088; }
這個方法確保了相同的使用者端的請求一直傳送到相同的伺服器,這樣每個訪客都固定存取一個後端伺服器。如使用者需要分片上傳檔案到伺服器下,然後再由伺服器將分片合併,這時如果使用者的請求到達了不同的伺服器,那麼分片將儲存於不同的伺服器目錄中,導致無法將分片合併,該場景則需要使用ip hash策略。
需要注意的是,ip_hash不能與backup同時使用,另外當有伺服器需要剔除,必須手動down掉,此模式適合有狀態服務,比如session。
# 定義轉發分配規則 upstream myapp1 { ip_hash; # #保證每個請求固定存取一個後端伺服器 server srv1.com; server srv2.com:8088; server 192.168.0.100:8088; }
該範例使用一臺nginx作為負載均衡伺服器,兩臺tomcat作為web伺服器;可以把三個服務均在一臺機器進行搭建,也可以使用虛擬機器器虛擬三臺機器,然後進行測試。教學這裡就只在一臺機器進行搭建,採用預設的權重方式進行設定。
將兩臺tomcat解壓出來,設定完畢相應的埠,然後在webapps目錄下建立test目錄,然後在test目錄中建立index.html檔案,隨便寫入一些內容,兩臺tomcat中test目錄下的index.html檔案內容要區分開來,例如寫入1111111 / 222222222,如下圖所示。
首先進行nginx的安裝,安裝教學可以參考
https://www.jb51.net/article/231249.htm
安裝完畢後,進入nginx目錄下的conf目錄,編輯 nginx.conf 檔案,修改內容為在http節點下增加
upstream tomcat { # 該部分內容與 server 節點同級 server tomcat服務的ip:tomcat服務的埠號; server tomcat服務的ip:tomcat服務的埠號; }
server節點下的location /節點中,把預設的
location / { root html; index index.html index.htm; }
修改為
location / { proxy_pass http://tomcat; }
然後啟動 兩臺tomcat與nginx服務,在瀏覽器輸入nginx服務的地址:埠,不停重新整理頁面,就可以看到每次請求的伺服器發生了改變。
到此這篇關於使用nginx進行負載均衡的文章就介紹到這了,更多相關nginx負載均衡內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45