Nginx作為負(fù)載均衡服務(wù)

??在之前的文章中,我們通過服務(wù)代理的方式已經(jīng)看到了Nginx有作為負(fù)載均衡服務(wù)的功能了台舱,在這篇文章中律杠,我會講解Nginx的基本的負(fù)載均衡的使用、backup狀態(tài)演示竞惋、輪詢策略和加權(quán)輪詢柜去、負(fù)載均衡策略ip_hash的方式、負(fù)載均衡策略url_hash策略拆宛。

1.負(fù)載均衡的基本使用

1.1負(fù)載均衡流程圖

通過在Nginx服務(wù)器中配置proxy_pass和upstream server組可以實(shí)現(xiàn)最基本的負(fù)載均衡嗓奢。Nginx收到客戶端的請求后,將請求代理路由到upstream server中配置的各個服務(wù)中浑厚,默認(rèn)會使用輪詢的策略依次訪問各個服務(wù)股耽。


負(fù)載均衡

1.2upstream語法

upstream name {...},而且只能配置在http中

1.3實(shí)戰(zhàn)一:Nginx將請求負(fù)載均衡到后端3個服務(wù)中去

1.3.1配置3個后端服務(wù)server1,server2,server3

server1.conf的配置文件:

server {
    listen       8001;
    server_name  localhost;

    #charset koi8-r;
    access_log  /var/log/nginx/log/server1.access.log  main;

    location / {
        root   /opt/app/code1;
        index  index.html index.htm;
    }

端口8001钳幅,訪問的是/opt/app/code1路徑下的index.html文件
server2.conf配置文件

####################
#Author:jeson@imoocc.com
####################
server {
    listen       8002;
    server_name  localhost;

    #charset koi8-r;
    access_log  /var/log/nginx/log/server2.access.log  main;

    location / {
        root   /opt/app/code2;
        index  index.html index.htm;
    }

端口8002物蝙,訪問的是/opt/app/code2路徑下的index.html文件
server3.conf配置文件

server {
    listen       8003;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/server2.access.log  main;

    location / {
        root   /opt/app/code3;
        index  index.html index.htm;
    }
端口8003,訪問的是/opt/app/code2路徑下的index.html文件

1.3.2新建upstream_test.conf

####################
#Author:zzm
####################
    upstream zzm {
        server localhost:8001;
        server localhost:8002;
        server localhost:8003;
    }

server {
    listen       80;
    server_name  localhost ;

    #charset koi8-r;
    access_log  /var/log/nginx/test_proxy.access.log  main;
    resolver  8.8.8.8;

    location / {
        proxy_pass http://zzm;
    }

這里的配置中如果我們監(jiān)聽80端口贡这,如果用戶直接訪問IP:80/茬末,那么就會負(fù)載均衡到8001和8002和8003中的一個上面去。

1.3.3訪問3次

第一次訪問

第二次訪問

第三次訪問

實(shí)戰(zhàn)一完成,說明我們最最基本的負(fù)載均衡目的已經(jīng)達(dá)成丽惭。

1.4實(shí)戰(zhàn)二:了解后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài)

1.4.1狀態(tài)的種類:

  • down:當(dāng)前的server暫時不參與負(fù)載均衡
  • backup:預(yù)留的備份服務(wù)器
  • max_fails:允許請求失敗的次數(shù)
  • fail_timeout:經(jīng)過max_fails失敗后击奶,服務(wù)暫停的時間
  • max_conns:限制最大的接收的連接數(shù)

1.4.2設(shè)置server1為down狀態(tài),server2為預(yù)留服務(wù)器,server3最大失敗次數(shù)1

    upstream zzm {
        server localhost:8001 down;
        server localhost:8002 backup;
        server localhost:8003 max_fails=1 fail_timeout=10s;
    }

1.4.3不斷訪問localhost:80

訪問結(jié)果只有server3,因?yàn)閟erver1已經(jīng)down了责掏,server2是備份


訪問結(jié)果

1.4.4我們禁止對8003的訪問柜砾,預(yù)期訪問server2

我們用iptables命令來限制對8003的訪問:iptables -I INPUT -p tcp --dport 8003 -j DROP
此刻再訪問localhost:80的結(jié)果是:



說明backup生效了。

1.5負(fù)載均衡策略

策略

1.5.1加權(quán)輪詢策略配置

    upstream zzm {
        server localhost:8001;
        server localhost:8002 weight=5;
        server localhost:8003;
    }

這里我們就只把配置貼出來换衬,具體的演示結(jié)果就不展示了

1.5.2ip_hash

upstream zzm {
        ip_hash;
        server localhost:8001;
        server localhost:8002;
        server localhost:8003;
    }

這里就多配置了ip_hash這個關(guān)鍵字痰驱,是根據(jù)客戶端的ip來進(jìn)行負(fù)載均衡的,但是如果Nginx的前置是路由器的話瞳浦,它會根據(jù)路由器IP來做負(fù)載均衡担映,所以用的不多,我們這里也不做演示叫潦。

1.5.3hash關(guān)鍵數(shù)值

有時候我們希望用戶訪問某一些關(guān)鍵路徑的時候只能路由到其中的一臺服務(wù)器上蝇完,而不是隨機(jī)落到一臺服務(wù)器上,這個時候我們的配置就是這樣的:

    upstream zzm {
        hash $request_uri;
        server localhost:8001;
        server localhost:8002;
        server localhost:8003;
    }

無論如何刷新url1.html矗蕊,都只會到server3上面去訪問短蜕,而不會到其他兩臺server中去訪問,如下圖所示:


image.png

Nginx作為負(fù)載均衡服務(wù)就講到這里~~Nginx的場景實(shí)踐篇就講到這里傻咖,接下來我們將深度學(xué)習(xí)Nginx

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朋魔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子卿操,更是在濱河造成了極大的恐慌警检,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硬纤,死亡現(xiàn)場離奇詭異解滓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)筝家,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門洼裤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人溪王,你說我怎么就攤上這事腮鞍。” “怎么了莹菱?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵移国,是天一觀的道長。 經(jīng)常有香客問我道伟,道長迹缀,這世上最難降的妖魔是什么使碾? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮祝懂,結(jié)果婚禮上票摇,老公的妹妹穿的比我還像新娘。我一直安慰自己砚蓬,他們只是感情好矢门,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灰蛙,像睡著了一般祟剔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摩梧,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天物延,我揣著相機(jī)與錄音,去河邊找鬼障本。 笑死教届,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的驾霜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼买置,長吁一口氣:“原來是場噩夢啊……” “哼粪糙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起忿项,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤蓉冈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后轩触,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寞酿,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年脱柱,在試婚紗的時候發(fā)現(xiàn)自己被綠了伐弹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡榨为,死狀恐怖惨好,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情随闺,我是刑警寧澤日川,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站矩乐,受9級特大地震影響龄句,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一分歇、第九天 我趴在偏房一處隱蔽的房頂上張望透葛。 院中可真熱鬧,春花似錦卿樱、人聲如沸僚害。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萨蚕。三九已至,卻和暖如春蹄胰,著一層夾襖步出監(jiān)牢的瞬間岳遥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工裕寨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浩蓉,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓宾袜,卻偏偏與公主長得像捻艳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子庆猫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

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