nginx負(fù)載均衡如何實(shí)現(xiàn)矗烛?

什么是nginx如筛?

Nginx("engine x")是一款是由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開發(fā)高性能的Web和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器午绳。

在高連接并發(fā)的情況下,Nginx是Apache服務(wù)器不錯(cuò)的替代品映之。

nginx服務(wù)器基本特征

  • 處理靜態(tài)文件拦焚,索引文件以及自動(dòng)索引蜡坊;打開文件描述符緩沖
  • 無緩存的反向代理加速,簡單的負(fù)載均衡和容錯(cuò)
  • FastCGI赎败,簡單的負(fù)載均衡和容錯(cuò)
  • 模塊化的結(jié)構(gòu)秕衙。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或 其它代理服務(wù)器處理單頁中存在的多個(gè)SSI僵刮,則這項(xiàng)處理可以并行運(yùn)行据忘,而不需要相互等待
  • 支持SSL 和 TLSSNI

nginx常用功能

1、Http代理搞糕,反向代理:作為web服務(wù)器最常用的功能之一勇吊,尤其是反向代理。

Nginx在做反向代理時(shí)窍仰,提供性能穩(wěn)定汉规,并且能夠提供配置靈活的轉(zhuǎn)發(fā)功能。Nginx可以根據(jù)不同的正則匹配驹吮,采取不同的轉(zhuǎn)發(fā)策略针史,比如圖片文件結(jié)尾的走文件服務(wù)器,動(dòng)態(tài)頁面走web服務(wù)器碟狞,只要你正則寫的沒問題啄枕,又有相對(duì)應(yīng)的服務(wù)器解決方案,你就可以隨心所欲的玩族沃。并且Nginx對(duì)返回結(jié)果進(jìn)行錯(cuò)誤頁跳轉(zhuǎn)频祝,異常判斷等。如果被分發(fā)的服務(wù)器存在異常竭业,他可以將請(qǐng)求重新轉(zhuǎn)發(fā)給另外一臺(tái)服務(wù)器智润,然后自動(dòng)去除異常服務(wù)器。

2未辆、負(fù)載均衡

Nginx的負(fù)載均衡是通過upstream實(shí)現(xiàn)的窟绷。

eg.

upstream test.aaa { 
    ip_hash;  ## 調(diào)度算法
    server 192.168.1.10:80; 
    server 192.168.1.11:80 down; 
    server 192.168.1.12:8009 max_fails=3 fail_timeout=20s; 
    server 192.168.1.13:8080; 
 } 
server { 
    listen       80;
    server_name  localhost;
    location / { 
    proxy_pass http://test.aaa; 
    } 
 } 

upstream 支持的負(fù)載均衡算法:

  • 輪詢(默認(rèn))

每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端某臺(tái)服務(wù)器宕機(jī)咐柜,故障系統(tǒng)被自動(dòng)剔除兼蜈,使用戶訪問不受影響。

  • weight

指定輪詢幾率拙友,weight和訪問比率成正比为狸,用于后端服務(wù)器性能不均的情況。

  • fair(第三方)

按后端服務(wù)器的響應(yīng)時(shí)間來分配請(qǐng)求遗契,響應(yīng)時(shí)間短的優(yōu)先分配辐棒。Nginx本身是不支持fair的,如果需要使用這種調(diào)度算法,必須下載Nginx的upstream_fair模塊漾根。

  • url_hash(第三方)

按訪問URL的hash結(jié)果來分配請(qǐng)求泰涂,使每個(gè)URL定向到同一個(gè)后端服務(wù)器,后端服務(wù)器為緩存時(shí)比較適用辐怕。另外逼蒙,在upstream中加入hash語句后,server語句不能寫入weight等其他參數(shù)寄疏。Nginx本身是不支持url_hash的是牢,如果需要使用這種調(diào)度算法,必須安裝Nginx 的hash軟件包陕截。

upstream 支持的狀態(tài)參數(shù)

  • down驳棱,表示當(dāng)前的server暫時(shí)不參與負(fù)載均衡。
  • backup艘策,預(yù)留的備份機(jī)器蹈胡。當(dāng)其他所有的非backup機(jī)器出現(xiàn)故障或者忙的時(shí)候,才會(huì)請(qǐng)求backup機(jī)器朋蔫,因此這臺(tái)機(jī)器的壓力最輕。
  • max_fails却汉,允許請(qǐng)求失敗的次數(shù)驯妄,默認(rèn)為1。當(dāng)超過最大次數(shù)時(shí)合砂,返回proxy_next_upstream 模塊定義的錯(cuò)誤青扔。
  • fail_timeout,在經(jīng)歷了max_fails次失敗后翩伪,暫停服務(wù)的時(shí)間微猖。max_fails可以和fail_timeout一起使用。

注缘屹,當(dāng)負(fù)載調(diào)度算法為ip_hash時(shí)凛剥,后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài)不能是weight和backup。

3轻姿、web緩存

Nginx可以對(duì)不同的文件做不同的緩存處理犁珠,配置靈活,并且支持FastCGI_Cache互亮,主要用于對(duì)FastCGI的動(dòng)態(tài)程序進(jìn)行緩存犁享。配合著第三方的ngx_cache_purge,對(duì)制定的URL緩存內(nèi)容可以的進(jìn)行增刪管理豹休。


經(jīng)典前端面試題每日更新炊昆,歡迎參與討論,地址:https://github.com/daily-interview/fe-interview


更多angular1/2/4/5凤巨、ionic1/2/3屏积、react、vue磅甩、微信小程序炊林、nodejs等技術(shù)文章、視頻教程和開源項(xiàng)目卷要,請(qǐng)關(guān)注微信公眾號(hào)——全棧弄潮兒渣聚。

qrcode_for_gh_8.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市僧叉,隨后出現(xiàn)的幾起案子奕枝,更是在濱河造成了極大的恐慌,老刑警劉巖瓶堕,帶你破解...
    沈念sama閱讀 211,423評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隘道,死亡現(xiàn)場離奇詭異,居然都是意外死亡郎笆,警方通過查閱死者的電腦和手機(jī)谭梗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宛蚓,“玉大人激捏,你說我怎么就攤上這事∑嗬簦” “怎么了远舅?”我有些...
    開封第一講書人閱讀 157,019評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長痕钢。 經(jīng)常有香客問我图柏,道長,這世上最難降的妖魔是什么任连? 我笑而不...
    開封第一講書人閱讀 56,443評(píng)論 1 283
  • 正文 為了忘掉前任蚤吹,我火速辦了婚禮,結(jié)果婚禮上课梳,老公的妹妹穿的比我還像新娘距辆。我一直安慰自己,他們只是感情好暮刃,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評(píng)論 6 385
  • 文/花漫 我一把揭開白布跨算。 她就那樣靜靜地躺著,像睡著了一般椭懊。 火紅的嫁衣襯著肌膚如雪诸蚕。 梳的紋絲不亂的頭發(fā)上步势,一...
    開封第一講書人閱讀 49,798評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音背犯,去河邊找鬼坏瘩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛漠魏,可吹牛的內(nèi)容都是我干的倔矾。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼柱锹,長吁一口氣:“原來是場噩夢啊……” “哼哪自!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起禁熏,我...
    開封第一講書人閱讀 37,704評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤壤巷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后瞧毙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胧华,經(jīng)...
    沈念sama閱讀 44,152評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評(píng)論 2 327
  • 正文 我和宋清朗相戀三年宙彪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了矩动。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,629評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡您访,死狀恐怖铅忿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情灵汪,我是刑警寧澤,帶...
    沈念sama閱讀 34,295評(píng)論 4 329
  • 正文 年R本政府宣布柑潦,位于F島的核電站享言,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏渗鬼。R本人自食惡果不足惜览露,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望譬胎。 院中可真熱鬧差牛,春花似錦、人聲如沸堰乔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镐侯。三九已至侦讨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背韵卤。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評(píng)論 1 266
  • 我被黑心中介騙來泰國打工骗污, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沈条。 一個(gè)月前我還...
    沈念sama閱讀 46,333評(píng)論 2 360
  • 正文 我出身青樓需忿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蜡歹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子屋厘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容