欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

基于nginx高并發(fā)與負(fù)載均衡

Nginx是如何實(shí)現(xiàn)高并發(fā)的

service nginx start之后,然后輸入#ps -ef|grep nginx,會(huì)發(fā)現(xiàn)Nginx有一個(gè)master進(jìn)程和若干個(gè)worker進(jìn)程,這些worker進(jìn)程是平等的,都是被master fork過(guò)來(lái)的。在master里面,先建立需要listen的socket(listenfd),然后再fork出多個(gè)worker進(jìn)程。當(dāng)用戶進(jìn)入nginx服務(wù)的時(shí)候,每個(gè)worker的listenfd變的可讀,并且這些worker會(huì)搶一個(gè)叫accept_mutex的東西,accept_mutex是互斥的,一個(gè)worker得到了,其他的worker就歇菜了。而搶到這個(gè)accept_mutex的worker就開(kāi)始“讀取請(qǐng)求--解析請(qǐng)求--處理請(qǐng)求”,數(shù)據(jù)徹底返回客戶端之后(目標(biāo)網(wǎng)頁(yè)出現(xiàn)在電腦屏幕上),這個(gè)事件就算徹底結(jié)束。

nginx用這個(gè)方法是底下的worker進(jìn)程搶注用戶的要求,同時(shí)搭配“異步非阻塞”的方式,實(shí)現(xiàn)高并發(fā)量。

注:在nginx.conf里第二行就是work_process,有默認(rèn)是4的,也可以更改成auto,這個(gè)值不是越大越好,要可實(shí)際情況而定。

二、負(fù)載均衡

隨著業(yè)務(wù)不斷拓展、用戶量不斷增多,原本一臺(tái)Nginx代理的服務(wù)器已經(jīng)顯得吃力,不論在性能、響應(yīng)速度等都顯得力不從心,所以需要對(duì)后臺(tái)服務(wù)器做負(fù)載均衡,緩解一臺(tái)或幾臺(tái)服務(wù)器的高并發(fā)請(qǐng)求壓力。

1、Upstream

負(fù)載均衡需要使用Nginx支持的HTTP Upstream模塊,該模塊通過(guò)一個(gè)簡(jiǎn)單的算法調(diào)度來(lái)實(shí)現(xiàn)客戶端ip到服務(wù)端負(fù)載均衡。Upstream目前支持4種調(diào)度算法:

A、默認(rèn)的輪循

默認(rèn)的調(diào)度算法,在處理客戶端的每次請(qǐng)求時(shí),按照時(shí)間順序逐一分配到均衡服務(wù)器,可以設(shè)定服務(wù)器的權(quán)重(weight)比值,比值越大訪問(wèn)的幾率越大,一般用在后臺(tái)服務(wù)器列表訪問(wèn)性能不均勻情況。

B、ip_hash

記錄每次訪客的ip地址,固定分配給指定的服務(wù)器,有效的解決了不同服務(wù)器網(wǎng)頁(yè)Session的問(wèn)題。

C、fair

根據(jù)后端服務(wù)器響應(yīng)的時(shí)間長(zhǎng)短來(lái)分配,響應(yīng)時(shí)間越短被分配幾率越大,它屬于第三方插件,Nginx本身并不支持,如需使用必須下載Nginx的upstream_fair模塊。

D、url_hash

按訪問(wèn)的地址url的hash值結(jié)果分配, 使每個(gè)url定向到指定的服務(wù)器,可以提高后端服務(wù)器的緩存效率,同樣的,Nginx本身也不支持該算法,需要第三方的hash軟件。

2、Upstream支持的狀態(tài)參數(shù)

在Nginx的Upstream模塊中,除了可以通過(guò)server指定到特定服務(wù)器和端口,還可以設(shè)置服務(wù)器在負(fù)載均衡中的狀態(tài)。目前的狀態(tài)如下:

A、down

代表當(dāng)前的服務(wù)器server不參與負(fù)載均衡。

B、backup

預(yù)留的備用設(shè)備,也就是當(dāng)其它的服務(wù)器故障或忙時(shí)才會(huì)分配它給客戶請(qǐng)求,所以它的壓力最小。

C、max_fails

服務(wù)器server允許請(qǐng)求失敗的次數(shù),默認(rèn)為1次,當(dāng)失敗次數(shù)超過(guò)限定的次數(shù),就會(huì)返回proxy_next_upstream錯(cuò)誤信息。

D、fail_timeout

當(dāng)經(jīng)歷了max_fails的次數(shù)后,暫停服務(wù)的時(shí)間,一般與max_fails配合使用。

注意:

當(dāng)服務(wù)器的調(diào)度算法為ip_hash時(shí),服務(wù)器在負(fù)載均衡中的狀態(tài)不能是weight和backup,理由很明顯,不做說(shuō)明。

3、Nginx配置負(fù)載

Nginx中配置負(fù)載均衡比較簡(jiǎn)單,只需要修改nginx.conf配置文件,添加均衡服務(wù)器列表,以及使用proxy_pass引用服務(wù)器列表即可,具體如下:

A、upstream

#upstream

upstream webservers {

  server 127.0.0.1:8080 weight=1;

  server 127.0.0.1:8081 weight=1;

}   

注:

該配置放在http{}內(nèi),server{}之外,否則會(huì)報(bào)錯(cuò)。

B、proxy_pass

location / {

  proxy_pass http://webservers;

  proxy_set_header X-Real-IP$remote_addr;

 }

注:

引用均衡服務(wù)器的列表

C、測(cè)試均衡

瀏覽器輸入:http://127.0.0.1 反復(fù)刷新頁(yè)面,如果看到test1和test2服務(wù)端交替出現(xiàn),那么說(shuō)明負(fù)載已經(jīng)成功(如果其中一臺(tái)服務(wù)器掛掉,如test1掛掉,那么只會(huì)給test2服務(wù)器分配),測(cè)試結(jié)果如下:

4、Nginx的健康狀態(tài)檢查

配置upstream狀態(tài)max_fails和fail_timeout,對(duì)Nginx健康檢查。

A、upstream

#upstream

upstream webservers {

      server 127.0.0.1:8080 weight=1max_fails=2 fail_timeout=2;

server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=2;

 }

B、測(cè)試

這里的結(jié)果與上面的測(cè)試結(jié)果是一樣的,這是添加了max_fails和fail_timeout。

5、配置backup服務(wù)器

這里需要添加一臺(tái)backup虛擬機(jī)服務(wù)器,具體這里不介紹。服務(wù)器地址為:

http://backup.cwteam.com 端口:8082 內(nèi)容:Error is now,please check theerror.log

A、upstream

#upstream

upstream webservers {

      server 127.0.0.1:8080 weight=1max_fails=2 fail_timeout=2;

      server 127.0.0.1:8081 weight=1max_fails=2 fail_timeout=2;

      server 127.0.0.1:8082 backup;

    }

B、測(cè)試

為了模擬在test1和test2服務(wù)器都不工作,這里我將test1和test2的虛擬機(jī)配置文件.conf中的監(jiān)聽(tīng)端口分別改為:8084和8085,然后記得重啟Nginx服務(wù),這樣在服務(wù)器列表中的test1和test2就不能正常工作。

輸入:http://127.0.0.1 反復(fù)刷新,結(jié)果顯示:

上圖,說(shuō)明了在test1和test2都?jí)牡糁?,backup算法的服務(wù)器就會(huì)被訪問(wèn)了,下面來(lái)繼續(xù)總結(jié)ip_hash算法。

6、配置ip_hash服務(wù)器

配置ip_hash算法調(diào)度服務(wù)器時(shí),不能設(shè)置服務(wù)器的狀態(tài)為weight和backup,所以需要關(guān)閉Nginx.conf中的backup狀態(tài)服務(wù)器,配置完成記得重啟nginx,如下:

A、upstream

#upstream

upstream webservers {

      ip_hash;

      server 127.0.0.1:8080 weight=1max_fails=2 fail_timeout=2;

      server 127.0.0.1:8081 weight=1max_fails=2 fail_timeout=2;

      #server 127.0.0.1:8082 backup;

    }

B、測(cè)試

輸入:http://127.0.0.1 反復(fù)刷新頁(yè)面 如果調(diào)度的服務(wù)器總是test1或是test2時(shí),那就說(shuō)明ip_hash算法服務(wù)器設(shè)置成功,結(jié)果如下:

7、統(tǒng)計(jì)Web鏈接的次數(shù)

$ netstat -an | grep :8080 | wc -l

12

注意:

使用虛擬主機(jī)驗(yàn)證Nginx反向代理及負(fù)載均衡是有限制的,正常應(yīng)該是為每個(gè)服務(wù)器配置web服務(wù)器,所以對(duì)應(yīng)的均衡服務(wù)器配置驗(yàn)證時(shí),因該以關(guān)閉web服務(wù)器為準(zhǔn),而且在對(duì)應(yīng)的服務(wù)器中可以查看日志信息。


本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/18579464.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄