Nginx之反向代理與負(fù)載均衡實(shí)現(xiàn)動(dòng)靜分離實(shí)戰(zhàn)

負(fù)載均衡指的是對(duì)請(qǐng)求數(shù)據(jù)包的轉(zhuǎn)發(fā)真竖,從負(fù)載均衡下面的節(jié)點(diǎn)服務(wù)器來(lái)看脐雪,接收到的請(qǐng)求還是來(lái)自訪問(wèn)負(fù)載均衡器
的客戶端的真實(shí)用戶,而反向代理服務(wù)器指的是接收到用戶的請(qǐng)求后恢共,會(huì)代理用戶重新發(fā)起請(qǐng)求代理下的節(jié)點(diǎn)服務(wù)器战秋,最后把數(shù)據(jù)返回給客戶端用戶,在節(jié)點(diǎn)服務(wù)器看來(lái)讨韭,范文的節(jié)點(diǎn)服務(wù)器的客戶端用的就是反向代理服務(wù)器了脂信,而非真實(shí)的網(wǎng)站訪問(wèn)用戶癣蟋。

Nginx http功能模塊

ngx_nginx upstream       負(fù)載均和模塊,可以實(shí)現(xiàn)網(wǎng)站的負(fù)載均衡功能及節(jié)點(diǎn)的健康檢查

ngx_http_proxy_module      Proxy模塊狰闪,用于把請(qǐng)求后拋給服務(wù)器節(jié)點(diǎn)或upstream服務(wù)器池

Nginx的upstream支持5種分配方式梢薪。其中,前三種為Nginx原生支持的分配方式尝哆,后兩種為第三方支持的分配方式:

1)rr輪詢     
        輪詢是upstream的默認(rèn)分配方式秉撇,即每個(gè)請(qǐng)求按照時(shí)間順序輪流分配到不同的后端服務(wù)器,如果某個(gè)后端
服務(wù)器down掉后秋泄,能自動(dòng)剔除琐馆。按照1:1輪詢。
        upstream backend {
            server 192.168.1.101:88;
            server 192.168.1.102:88;
        }
2)wrr輪詢       
        輪詢的加強(qiáng)版恒序,即可以指定輪詢比率瘦麸,weight和訪問(wèn)幾率成正比,主要應(yīng)用于后端服務(wù)器異質(zhì)的場(chǎng)景下歧胁。
        upstream backend {
            server 192.168.1.101 weight=1;
            server 192.168.1.102 weight=2;
            server 192.168.1.103 weight=3;
        }
3)ip_hash  (upstream_fair)      
        每個(gè)請(qǐng)求按照訪問(wèn)ip(即Nginx的前置服務(wù)器或者客戶端IP)的hash結(jié)果分配滋饲,這樣每個(gè)訪客會(huì)固定訪問(wèn)
一個(gè)后端服務(wù)器,可以解決session一致問(wèn)題喊巍。
        upstream backend {
            ip_hash;
            server 192.168.1.101:81;
            server 192.168.1.102:82;
            server 192.168.1.103:83;
        }
注:當(dāng)使用ip_hash時(shí)屠缭,服務(wù)器狀態(tài)不可使用weight和backup
4)fair    (第三方的hash模塊)      
        fair顧名思義,公平地按照后端服務(wù)器的響應(yīng)時(shí)間(rt)來(lái)分配請(qǐng)求崭参,響應(yīng)時(shí)間短即rt小的后端服務(wù)器優(yōu)
先分配請(qǐng)求呵曹。
        upstream backend {
            server 192.168.1.101;
            server 192.168.1.102;
            fair;
        }
5)url_hash
        與ip_hash類似,但是按照訪問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求何暮,使得每個(gè)url定向到同一個(gè)后端服務(wù)器奄喂,主要應(yīng)
用于后端服務(wù)器為緩存時(shí)的場(chǎng)景下。
        upstream backend {
            server 192.168.1.101;
            server 192.168.1.102;
            hash $request_uri;
            hash_method crc32;
        }

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

down:               暫停對(duì)該服務(wù)器的調(diào)度
backup:             類似于LVS Sorry Server海洼,當(dāng)所有的非backup的服務(wù)器故障
max_fails:          請(qǐng)求失敗的次數(shù)跨新,默認(rèn)為1
fail_timeout:       在經(jīng)歷max_fails次失敗后,暫停服務(wù)的時(shí)間
              [vip: 10.0.0.11]

        [LB1 Nginx]         [LB2 Nginx]
        10.0.0.20           10.0.0.21

          web1     web2              phpserver1     phpserver2
    10.0.0.22      10.0.0.23           10.0.0.24       10.0.0.24

一坏逢、實(shí)施過(guò)程

后端服務(wù)器部署詳細(xì)過(guò)程:
安裝軟件:
    # yum install nginx php php-fpm -y
    # vim /etc/nginx/nginx.conf   //添加php配置
    在server里面添加如下配置:
    location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
   
   修改php-fpm進(jìn)程賬戶并開(kāi)啟php-fpm的進(jìn)程: 端口是9000  
   #vim /etc/php-fpm.d/www.conf  //修改如下參數(shù)域帐,默認(rèn)值是apache
   user = nginx
   group = nginx
   
   為什么設(shè)置成nginx:
       因?yàn)閚ginx.conf配置的賬戶為nginx
   
   # systemctl start php-fpm
       

前端nginx反向代理服務(wù)器:
upstream web {
    server 10.0.0.22 weight=1 max_fails=2 fail_timeout=2;
        server 10.0.0.23 max_fails=2 fail_timeout=5 down;
        }
upstream phpserver {
    server 10.0.0.24 backup;
    server 10.0.0.25;
        }       #上面的配置寫到http里面server外面
       
server {
    listen 80;
        server_name www.baidu.com;
location ~* \.html${            #html的配置
        proxy_pass http://web;
        }

location ~* \.php$ {         #php的配置
        proxy_pass http://phpserver;
    proxy_set_header Host   $host;
        proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout 30;
    proxy_send_timeout 60;
    proxy_read_timeout 60;

    proxy_buffering on;      
    proxy_buffer_size 32k;   
    proxy_buffers 4 128k;
    proxy_busy_buffers_size 256k;
    proxy_max_temp_file_size 256k;
        }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市词疼,隨后出現(xiàn)的幾起案子俯树,更是在濱河造成了極大的恐慌,老刑警劉巖贰盗,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異阳欲,居然都是意外死亡舵盈,警方通過(guò)查閱死者的電腦和手機(jī)陋率,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秽晚,“玉大人瓦糟,你說(shuō)我怎么就攤上這事「坝” “怎么了菩浙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)句伶。 經(jīng)常有香客問(wèn)我劲蜻,道長(zhǎng),這世上最難降的妖魔是什么考余? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任先嬉,我火速辦了婚禮,結(jié)果婚禮上楚堤,老公的妹妹穿的比我還像新娘疫蔓。我一直安慰自己,他們只是感情好身冬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布衅胀。 她就那樣靜靜地躺著,像睡著了一般酥筝。 火紅的嫁衣襯著肌膚如雪拗小。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天樱哼,我揣著相機(jī)與錄音哀九,去河邊找鬼。 笑死搅幅,一個(gè)胖子當(dāng)著我的面吹牛阅束,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茄唐,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼息裸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了沪编?” 一聲冷哼從身側(cè)響起呼盆,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蚁廓,沒(méi)想到半個(gè)月后访圃,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡相嵌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年腿时,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了况脆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡批糟,死狀恐怖格了,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情徽鼎,我是刑警寧澤盛末,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站否淤,受9級(jí)特大地震影響悄但,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜叹括,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一算墨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汁雷,春花似錦净嘀、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至厢漩,卻和暖如春膜眠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溜嗜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工宵膨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炸宵。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓辟躏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親土全。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捎琐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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