Nginx配置負載均衡

負載均衡(Load Balance),其含義就是指將負載(工作任務(wù))進行平衡、分攤到多個操作單元上進行運行澎怒,例如FTP服務(wù)器杭抠、Web服務(wù)器脸甘、企業(yè)核心應(yīng)用服務(wù)器和其它主要任務(wù)服務(wù)器等,從而協(xié)同完成工作任務(wù)偏灿。
例如丹诀,當我們網(wǎng)站的訪問量少的時候,單臺服務(wù)器足以處理客戶的請求翁垂。但隨著我們的客戶量铆遭,訪問量越來越多時,單臺服務(wù)器處理不過來就會造成響應(yīng)時長過長沿猜,用戶體驗差枚荣,甚至造成服務(wù)器宕機,此時我們就需要配置服務(wù)器集群啼肩,多臺服務(wù)器共同為用戶提供服務(wù)橄妆,減輕單臺服務(wù)器壓力;而且當其中一臺服務(wù)器出現(xiàn)問題宕機后祈坠,其他服務(wù)器依然可以正常接收處理用戶請求害碾,提高了系統(tǒng)的穩(wěn)定性,用戶體驗也更好赦拘。
本文介紹Nginx配置反向代理實現(xiàn)負載均衡的步驟

一蛮原、正向代理與反向代理

1. 正向代理

正向代理類似一個跳板機,代理訪問外部資源
比如我們國內(nèi)訪問谷歌另绩,直接訪問訪問不到儒陨,我們可以通過一個正向代理服務(wù)器,請求發(fā)到代理服笋籽,代理服務(wù)器能夠訪問谷歌蹦漠,這樣由代理去谷歌取到返回數(shù)據(jù),再返回給我們车海,這樣我們就能訪問谷歌了
正向代理的用途:

  1. 訪問原來無法訪問的資源笛园,如google
  2. 可以做緩存隘击,加速訪問資源
  3. 對客戶端訪問授權(quán),上網(wǎng)進行認證
  4. 代理可以記錄用戶訪問記錄(上網(wǎng)行為管理)研铆,對外隱藏用戶信息
2. 反向代理

反向代理(Reverse Proxy)實際運行方式是指以代理服務(wù)器來接受internet上的連接請求埋同,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端棵红,此時代理服務(wù)器對外就表現(xiàn)為一個服務(wù)器
反向代理的作用:

  1. 保證內(nèi)網(wǎng)的安全凶赁,阻止web攻擊,大型網(wǎng)站逆甜,通常將反向代理作為公網(wǎng)訪問地址虱肄,Web服務(wù)器是內(nèi)網(wǎng)
  2. 負載均衡,通過反向代理服務(wù)器來優(yōu)化網(wǎng)站的負載
image.png

二交煞、負載均衡

現(xiàn)在我們搭建一個由兩臺服務(wù)器組成的集群為用戶提供服務(wù)咏窿。
第一臺服務(wù)器是:192.168.204.133
第二臺服務(wù)器是:192.168.204.134
那么我們可以這樣配置:所有的用戶通過域名解析訪問到第一臺服務(wù)器:192.168.204.133的80端口,80端口由Nginx監(jiān)聽素征,接收到用戶請求后集嵌,按照一定的策略(平均,權(quán)重御毅,ip_hash等等)分發(fā)到真正處理請求的服務(wù)器中根欧,我們設(shè)置真正處理請求的服務(wù)器是192.168.204.133的8080端口 和 192.168.204.134的80端口。這樣亚享,假如我們有100個請求同時請求我們的網(wǎng)站咽块,那么可以把50個請求轉(zhuǎn)發(fā)到192.168.204.133,另外50個請求轉(zhuǎn)發(fā)到192.168.204.134欺税,從而達到負載均衡的效果侈沪,減輕單機處理所有請求的壓力。


image.png

三晚凿、負載均衡配置

注意點:
1亭罪,新裝的Linux可能只允許訪問80端口,其他端口不允許訪問歼秽,此時需要配置防火墻
2应役,nginx+php環(huán)境訪問顯示access denied 解決辦法:將php.ini中cgi.fix_pathinfo從0改為1。        
3燥筷,fastcgi_pass有兩種配置箩祥,unix:/tmp/php-cgi.sock 和 127.0.0.1:9000; 默認是前者

1,第一臺服務(wù)器192.168.204.133的Nginx配置:
其中192.168.204.133:80提供代理服務(wù)肆氓,負責(zé)分發(fā)用戶發(fā)送的請求到集群節(jié)點袍祖,192.168.204.133:8080提供真實服務(wù),為一個集群節(jié)點

#nginx進程數(shù)谢揪,建議設(shè)置為等于CPU總核心數(shù)蕉陋。該配置的數(shù)值越大捐凭,Nginx的并發(fā)能力就越強
worker_processes auto;
worker_cpu_affinity auto;

#全局錯誤日志定義類型,[ debug | info | notice | warn | error | crit ]
error_log  /home/wwwlogs/nginx_error.log  crit;


pid        /usr/local/nginx/logs/nginx.pid; #進程pid文件
worker_rlimit_nofile 51200;                 #指定進程可以打開的最大描述符:數(shù)目

events
   {
       use epoll;
       worker_connections 51200;#數(shù)值越大凳鬓,并發(fā)能力越強
       multi_accept off;
       accept_mutex off;
   }


http
{
   include       mime.types;           #引入一個外部文件: ./mine.types 該文件放著大量的媒體類型 
   default_type  application/octet-stream;

   # 負載服務(wù)器節(jié)點
   upstream my-server
   {
       server 192.168.204.133:8080;
       server 192.168.204.134:80;
   }

   # 代理服務(wù)器配置:
   server
   {
       listen  80;                         #監(jiān)聽的端口
       server_name _;                      #訪問域名

       location /
       {
           proxy_pass http://my-server/;   #配置想要分發(fā)到的節(jié)點
       }

   }

   # 服務(wù)器節(jié)點192.168.204.133:8080 配置:
   server
   {
       listen  8080;                       #監(jiān)聽的端口
       server_name _;                      #訪問域名
       index index.html index.php;         #默認訪問的文件
       root /home/wwwroot/default/balance; #網(wǎng)站根目錄

       location /
       {
           index index.html index.php;
       }

       #命中php文件茁肠,交由php-cgi處理,非PHP應(yīng)用忽略以下配置
       location ~ \.php(.*)$  
       {
           fastcgi_pass  unix:/tmp/php-cgi.sock;
           fastcgi_index  index.php;
           fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           fastcgi_param  PATH_INFO  $fastcgi_path_info;
           fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
           include        fastcgi_params;
       }
   }

}

2缩举,第二臺服務(wù)器192.168.204.134的Nginx配置:

worker_processes auto;
worker_cpu_affinity auto;

error_log  /home/wwwlogs/nginx_error.log  crit;
pid        /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept off;
        accept_mutex off;
    }
http
{
    include       mime.types;           
    default_type  application/octet-stream;


    # 服務(wù)器節(jié)點192.168.204.134 配置:
    server
    {
        listen  80;                         #監(jiān)聽的端口
        server_name _;                      #訪問域名
        index index.html index.php;         #默認訪問的文件
        root /home/wwwroot/default;         #網(wǎng)站根目錄

        location /
        {
            index index.html index.php;
        }

        #命中php文件垦梆,交由php-cgi處理,非PHP應(yīng)用忽略以下配置
        location ~ \.php(.*)$  
        {
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
    }

    #include vhost/*.conf;
}

然后我們打開兩個瀏覽器窗口模擬兩個請求蚁孔,共同訪問 192.168.204.133 奶赔,可以看惋嚎,一個請求分發(fā)到了192.168.204.133:8080杠氢,一個請求分發(fā)到了192.168.204.134:80,此時另伍,負載均衡配置完成鼻百。


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市摆尝,隨后出現(xiàn)的幾起案子温艇,更是在濱河造成了極大的恐慌,老刑警劉巖堕汞,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勺爱,死亡現(xiàn)場離奇詭異,居然都是意外死亡讯检,警方通過查閱死者的電腦和手機琐鲁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來人灼,“玉大人围段,你說我怎么就攤上這事⊥斗牛” “怎么了奈泪?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灸芳。 經(jīng)常有香客問我涝桅,道長,這世上最難降的妖魔是什么烙样? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任冯遂,我火速辦了婚禮,結(jié)果婚禮上误阻,老公的妹妹穿的比我還像新娘债蜜。我一直安慰自己晴埂,他們只是感情好,可當我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布寻定。 她就那樣靜靜地躺著儒洛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狼速。 梳的紋絲不亂的頭發(fā)上琅锻,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天,我揣著相機與錄音向胡,去河邊找鬼恼蓬。 笑死,一個胖子當著我的面吹牛僵芹,可吹牛的內(nèi)容都是我干的处硬。 我是一名探鬼主播,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼拇派,長吁一口氣:“原來是場噩夢啊……” “哼荷辕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起件豌,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤疮方,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后茧彤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骡显,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年曾掂,在試婚紗的時候發(fā)現(xiàn)自己被綠了惫谤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡遭殉,死狀恐怖石挂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情险污,我是刑警寧澤痹愚,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布,位于F島的核電站蛔糯,受9級特大地震影響拯腮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚁飒,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一动壤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧淮逻,春花似錦琼懊、人聲如沸阁簸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽启妹。三九已至,卻和暖如春醉旦,著一層夾襖步出監(jiān)牢的瞬間饶米,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工车胡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留檬输,地道東北人。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓匈棘,卻偏偏與公主長得像丧慈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子羹饰,可洞房花燭夜當晚...
    茶點故事閱讀 43,576評論 2 349

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

  • 一伊滋、負載均衡 ??負載均衡是高可用網(wǎng)絡(luò)基礎(chǔ)架構(gòu)的的一個關(guān)鍵組成部分碳却,有了負載均衡队秩,我們通常可以將我們的應(yīng)用服務(wù)器部...
    無劍_君閱讀 724評論 0 7
  • 首先搭建3臺服務(wù)器昼浦,這里我的服務(wù)器ip分別是 外網(wǎng)ip 內(nèi)網(wǎng)ip 111.230.197...
    史史小子閱讀 504評論 0 0
  • 1. 負載均衡 Nginx的負載均衡算法有以下幾種:round-robin馍资,least-connected,ip-...
    Karl90閱讀 155評論 0 0
  • ????Nginx 是一款使用非常多的 Web 服務(wù)器关噪,經(jīng)典的 LNMP 中的一份子鸟蟹。當然 Apache 也是非常...
    Hesunfly閱讀 3,257評論 0 1
  • 之前做項目都是在一臺服務(wù)器上部署,向用戶提供服務(wù)使兔,隨著用戶的增多建钥,和使用系統(tǒng)的頻繁,用戶在使用過程中感覺越來越卡虐沥,...
    Macaroon7521閱讀 1,101評論 0 0