nginx負載均衡配置

負載均衡,單從字面上的意思來理解就可以解釋N臺服務器平均分擔負載,不會因為某臺服務器負載高宕機和某臺服務器閑置的情況亥鬓。那么負載均衡的前提就是要2臺以上服務器才能實現(xiàn)。

由于沒有服務器域庇,所以本次測試直接host指定域名嵌戈,服務器不夠,我們用nodejs監(jiān)聽了三個端口(8881,8882,8888)來模擬多臺服務器听皿。nginx監(jiān)聽80端口作為主服務器熟呛。

var http = require('http');

http.createServer(function (request, response) {

    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('server 8881');

}).listen(8881);

// 終端打印如下信息
console.log('Server running at http://127.0.0.1:8881/');
var http = require('http');

http.createServer(function (request, response) {

    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('server 8882');

}).listen(8882);

// 終端打印如下信息
console.log('Server running at http://127.0.0.1:8882');
var http = require('http');

http.createServer(function (request, response) {

    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('server 8888');

}).listen(8888);

// 終端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

測試域名yongle.com
A服務器監(jiān)聽80端口(主)
B服務器監(jiān)聽8881端口(從)
C服務器監(jiān)聽8882端口(從)
D服務器監(jiān)聽8888端口(從)

A服務器做為主服務器,域名直接解析到A服務器( 127.0.0.1:80)上尉姨,由A服務器負載均衡到B服務器( 127.0.0.1:8881)庵朝、C服務器( 127.0.0.1:8882)和D服務器( 127.0.0.1:8888)上。

A服務器nginx.conf設置打開nginx.conf又厉,文件位置在nginx安裝目錄的conf目錄下九府。在http段加入以下代碼

upstream yongle.com {
      server 127.0.0.1:8881;
      server 127.0.0.1:8882;
      server 127.0.0.1:8888;
}

server{ 
    listen 80; 
    server_name yongle.com; 
    location / { 
        proxy_pass         http://yongle.com; 
        proxy_set_header   Host             $host; 
        proxy_set_header   X-Real-IP        $remote_addr; 
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
    } 
}

保存重啟nginx即可完成負載均衡

我們把域名解析到A服務器,然后由A服務器轉發(fā)到B服務器C服務器與D服務器覆致,那么A服務器只做一個轉發(fā)功能侄旬,現(xiàn)在我們讓A服務器也提供站點服務。
如果添加主服務器到upstream中煌妈,那么可能會有以下兩種情況發(fā)生:
1儡羔、主服務器轉發(fā)到了其它IP上婆排,其它IP服務器正常處理;
2笔链、主服務器轉發(fā)到了自己IP上段只,然后又進到主服務器分配IP那里,假如一直分配到本機鉴扫,則會造成一個死循環(huán)赞枕。
怎么解決這個問題呢?因為80端口已經(jīng)用來監(jiān)聽負載均衡的處理坪创,那么本服務器上就不能再使用80端口來處理yongle.com的訪問請求炕婶,必須重新監(jiān)聽一個新的端口。于是我們把主服務器的nginx.conf加入以下一段代碼:

server {
        listen       8000;
        server_name  yongle.com;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }

把主服務器添加到upstream中

upstream yongle.com {
        server 127.0.0.1:8881;
        server 127.0.0.1:8882;
        server 127.0.0.1:8888;
        server 127.0.0.1:8000;
    }

到這里我們就完成了把主服務器也加入到了負載均衡中莱预。

  • Nginx負載均衡有4種方案配置
    1柠掂、輪詢
    輪詢即Round Robin,根據(jù)Nginx配置文件中的順序依沮,依次把客戶端的Web請求分發(fā)到不同的后端服務器上
    2涯贞、最少連接 least_conn;
    Web請求會被轉發(fā)到連接數(shù)最少的服務器上。
    3危喉、IP地址哈希 ip_hash;
    前述的兩種負載均衡方案中宋渔,同一客戶端連續(xù)的Web請求可能會被分發(fā)到不同的后端服務器進行處理,因此如果涉及到會話Session辜限,那么會話會比較復雜皇拣。常見的是基于數(shù)據(jù)庫的會話持久化。要克服上面的難題薄嫡,可以使用基于IP地址哈希的負載均衡方案氧急。這樣的話,同一客戶端連續(xù)的Web請求都會被分發(fā)到同一服務器進行處理毫深。
    4吩坝、基于權重 weight
    基于權重的負載均衡即Weighted Load Balancing,這種方式下费什,我們可以配置Nginx把請求更多地分發(fā)到高配置的后端服務器上钾恢,把相對較少的請求分發(fā)到低配服務器手素。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸳址,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泉懦,更是在濱河造成了極大的恐慌稿黍,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崩哩,死亡現(xiàn)場離奇詭異巡球,居然都是意外死亡言沐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門酣栈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來险胰,“玉大人,你說我怎么就攤上這事矿筝∑鸨悖” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵窖维,是天一觀的道長榆综。 經(jīng)常有香客問我,道長铸史,這世上最難降的妖魔是什么鼻疮? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮琳轿,結果婚禮上判沟,老公的妹妹穿的比我還像新娘。我一直安慰自己崭篡,他們只是感情好水评,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著媚送,像睡著了一般中燥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上塘偎,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天疗涉,我揣著相機與錄音,去河邊找鬼吟秩。 笑死咱扣,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的涵防。 我是一名探鬼主播闹伪,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼壮池!你這毒婦竟也來了偏瓤?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤椰憋,失蹤者是張志新(化名)和其女友劉穎厅克,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體橙依,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡证舟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年硕旗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片女责。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡漆枚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抵知,到底是詐尸還是另有隱情浪读,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布辛藻,位于F島的核電站碘橘,受9級特大地震影響,放射性物質發(fā)生泄漏吱肌。R本人自食惡果不足惜痘拆,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望氮墨。 院中可真熱鬧纺蛆,春花似錦、人聲如沸规揪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猛铅。三九已至字支,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奸忽,已是汗流浹背堕伪。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留栗菜,地道東北人欠雌。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像疙筹,于是被迫代替她去往敵國和親富俄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

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

  • 負載均衡是我們大流量網(wǎng)站要做的一個東西而咆,下面我來給大家介紹在Nginx服務器上進行負載均衡配置方法霍比,希望對有需要的...
    owen_he閱讀 451評論 0 0
  • 目錄 Nginx概述 Nginx調度算法 Nginx指令使用 Nginx負載均衡配置參數(shù) 1. Nginx概述 N...
    garyond閱讀 827評論 0 10
  • 背景當一個網(wǎng)站從小到大,訪問量逐漸增大現(xiàn)有的服務器已經(jīng)支撐不住翘盖,一般的解決方案就是緩存桂塞、加服務器、數(shù)據(jù)庫讀寫分離馍驯、...
    這真的是一個帥氣的名字閱讀 426評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理阁危,服務發(fā)現(xiàn),斷路器汰瘫,智...
    卡卡羅2017閱讀 134,701評論 18 139
  • 總覺得和你相距很近狂打, 但我卻沒鼓起勇氣, 跟你說一聲你好混弥。 總覺得與你無話不說趴乡, 但我卻在見你之后, 只是默默的微...
    樊辰閱讀 233評論 0 2