免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

Nginx負(fù)載均衡,實(shí)現(xiàn)我們網(wǎng)站的高可用性

 美好生活谷 2019-04-09

當(dāng)我們的網(wǎng)站處于發(fā)展初期的時(shí)候,nginx只代理了后端一臺(tái)服務(wù)器,但由于我們網(wǎng)站名氣大漲訪問(wèn)的人越來(lái)越多一臺(tái)服務(wù)器實(shí)在是頂不住,于是我們加了多臺(tái)服務(wù)器,那么多臺(tái)服務(wù)器又怎么配置代理呢,我們這里以兩臺(tái)服務(wù)器為案例,為大家做演示。

Nginx負(fù)載均衡,實(shí)現(xiàn)我們網(wǎng)站的高可用性

1. upstream 負(fù)載均衡模塊說(shuō)明

如:

下面設(shè)定負(fù)載均衡的服務(wù)器列表。

upstream {

ip_hash;

server 192.168.1.10:80;

server 192.168.1.11:80 down;

server 192.168.1.12:8009 max_fails=3 fail_timeout=20s;

server 192.168.1.13:8080;

}

server {

location / {

proxy_pass http://;

}

}

upstream 是 Nginx 的HTTP Upstream模塊,這個(gè)模塊通過(guò)一個(gè)簡(jiǎn)單的調(diào)度算法來(lái)實(shí)現(xiàn)客戶端IP到后端服務(wù)器的負(fù)載均衡。

在上面的設(shè)定中,通過(guò)upstream指令指定了一個(gè)負(fù)載均衡器的名稱 , 這個(gè)名稱可以任意指定,在后面需要用到的地方直接調(diào)用即可。

2.upstream 支持的負(fù)載均衡算法

Nginx的負(fù)載均衡模塊目前支持4種調(diào)度算法,下面進(jìn)行分別介紹,其中后兩項(xiàng)屬于第三方調(diào)度算法。

輪詢(默認(rèn)):每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端某臺(tái)服務(wù)器宕機(jī),故障系統(tǒng)被自動(dòng)剔除,使用戶訪問(wèn)不受影響。Weight 指定輪詢權(quán)值,Weight值越大,分配到的訪問(wèn)機(jī)率越高,主要用于后端每個(gè)服務(wù)器性能不均的情況下。

ip_hash:每個(gè)請(qǐng)求按訪問(wèn)IP的hash結(jié)果分配,這樣來(lái)自同一個(gè)IP的訪客固定訪問(wèn)一個(gè)后端服務(wù)器,有效解決了動(dòng)態(tài)網(wǎng)頁(yè)存在的session共享問(wèn)題。

fair:這是比上面兩個(gè)更加智能的負(fù)載均衡算法。此種算法可以依據(jù)頁(yè)面大小和加載時(shí)間長(zhǎng)短智能地進(jìn)行負(fù)載均衡,也就是根據(jù)后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。Nginx本身是不支持fair的,如果需要使用這種調(diào)度算法,必須下載Nginx的upstream_fair模塊。

url_hash:此方法按訪問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器,可以進(jìn)一步提高后端緩存服務(wù)器的效率。Nginx本身是不支持url_hash的,如果需要使用這種調(diào)度算法,必須安裝Nginx 的hash軟件包。

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

在HTTP Upstream模塊中,可以通過(guò)server指令指定后端服務(wù)器的IP地址和端口,同時(shí)還可以設(shè)定每個(gè)后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài)。常用的狀態(tài)有:

down : 表示當(dāng)前的server暫時(shí)不參與負(fù)載均衡。

backup : 預(yù)留的備份機(jī)器。當(dāng)其他所有的非backup機(jī)器出現(xiàn)故障或者忙的時(shí)候,才會(huì)請(qǐng)求backup 機(jī)器,因此這臺(tái)機(jī)器的壓力最輕。

max_fails : 允許請(qǐng)求失敗的次數(shù),默認(rèn)為1。當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯(cuò)誤。

fail_timeout : 在經(jīng)歷了max_fails次失敗后,暫停服務(wù)的時(shí)間。max_fails可以和fail_timeout一起使用。

注 : 當(dāng)負(fù)載調(diào)度算法為ip_hash時(shí),后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài)不能是weight和backup。

4.實(shí)驗(yàn)拓?fù)?/strong>

Nginx負(fù)載均衡,實(shí)現(xiàn)我們網(wǎng)站的高可用性

5. 配置nginx負(fù)載均衡

[root@nginx ~]# vim /etc/nginx/nginx.conf

upstream webservers {

server 192.168.18.201 weight=1;

server 192.168.18.202 weight=1;

}

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

proxy_pass http://webservers;

proxy_set_header X-Real-IP $remote_addr;

}

}

注,upstream是定義在server{ }之外的,不能定義在server{ }內(nèi)部。定義好upstream之后,用proxy_pass引用一下即可。

6.重新加載一下配置文件

[root@nginx ~]# service nginx reload

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

重新載入 nginx: [確定]

7.測(cè)試一下

Nginx負(fù)載均衡,實(shí)現(xiàn)我們網(wǎng)站的高可用性

注,大家可以不斷的刷新瀏覽的內(nèi)容,可以發(fā)現(xiàn)web1與web2是交替出現(xiàn)的,達(dá)到了負(fù)載均衡的效果。

8.查看一下Web訪問(wèn)服務(wù)器日志

Web1:

[root@web1 ~]# tail /var/log/httpd/access_log

192.168.1.208 - - [04/Sep/2013:09:41:58 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:41:58 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:41:59 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:41:59 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:42:00 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:42:00 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:42:00 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:44:21 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:44:22 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:44:22 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

Web2:

先修改一下,Web服務(wù)器記錄日志的格式。

[root@web2 ~]# vim /etc/httpd/conf/httpd.conf

LogFormat '%{X-Real-IP}i %l %u %t \'%r\' %>s %b \'%{Referer}i\' \'%{User-Agent}i\'' combined

[root@web2 ~]# service httpd restart

停止 httpd: [確定]

正在啟動(dòng) httpd: [確定]

接著,再訪問(wèn)多次,繼續(xù)查看日志。

[root@web2 ~]# tail /var/log/httpd/access_log

192.168.1.208 - - [04/Sep/2013:09:50:28 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:50:28 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:50:28 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:50:28 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:50:28 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:50:28 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:50:28 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:50:28 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:50:29 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

192.168.1.208 - - [04/Sep/2013:09:50:29 +0800] 'GET / HTTP/1.0' 200 23 '-' 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'

注,大家可以看到,兩臺(tái)服務(wù)器日志都記錄是192.168.1.208訪問(wèn)的日志,也說(shuō)明了負(fù)載均衡配置成功。

9.配置nginx進(jìn)行健康狀態(tài)檢查

max_fails,允許請(qǐng)求失敗的次數(shù),默認(rèn)為1。當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯(cuò)誤。

fail_timeout,在經(jīng)歷了max_fails次失敗后,暫停服務(wù)的時(shí)間。max_fails可以和fail_timeout一起使用,進(jìn)行健康狀態(tài)檢查。

[root@nginx ~]# vim /etc/nginx/nginx.conf

upstream webservers {

server 192.168.18.201 weight=1 max_fails=2 fail_timeout=2;

server 192.168.18.202 weight=1 max_fails=2 fail_timeout=2;

}

10.重新加載一下配置文件

[root@nginx ~]# service nginx reload

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

重新載入 nginx: [確定]

11.停止服務(wù)器并測(cè)試

先停止Web1,進(jìn)行測(cè)試。

[root@web1 ~]# service httpd stop

停止 httpd: [確定]

Nginx負(fù)載均衡,實(shí)現(xiàn)我們網(wǎng)站的高可用性

注,大家可以看到,現(xiàn)在只能訪問(wèn)Web2,再重新啟動(dòng)Web1,再次訪問(wèn)一下。

[root@web1 ~]# service httpd start

正在啟動(dòng) httpd: [確定]

Nginx負(fù)載均衡,實(shí)現(xiàn)我們網(wǎng)站的高可用性

注,大家可以看到,現(xiàn)在又可以重新訪問(wèn),說(shuō)明nginx的健康狀態(tài)查檢配置成功。但大家想一下,如果不幸的是所有服務(wù)器都不能提供服務(wù)了怎么辦,用戶打開頁(yè)面就會(huì)出現(xiàn)出錯(cuò)頁(yè)面,那么會(huì)帶來(lái)用戶體驗(yàn)的降低,所以我們能不能像配置LVS是配置sorry_server呢,答案是可以的,但這里不是配置sorry_server而是配置backup。

12.配置backup服務(wù)器

[root@nginx ~]# vim /etc/nginx/nginx.conf

server {

listen 8080;

server_name localhost;

root /data/www/errorpage;

index index.html;

}

upstream webservers {

server 192.168.18.201 weight=1 max_fails=2 fail_timeout=2;

server 192.168.18.202 weight=1 max_fails=2 fail_timeout=2;

server 127.0.0.1:8080 backup;

}

[root@nginx ~]# mkdir -pv /data/www/errorpage

[root@nginx errorpage]# cat index.html

<h1>Sorry......</h1>

13.重新加載配置文件

[root@nginx errorpage]# service nginx reload

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

重新載入 nginx: [確定]

14.關(guān)閉Web服務(wù)器并進(jìn)行測(cè)試

[root@web1 ~]# service httpd stop

停止 httpd: [確定]

[root@web2 ~]# service httpd stop

停止 httpd: [確定]

Nginx負(fù)載均衡,實(shí)現(xiàn)我們網(wǎng)站的高可用性

注,大家可以看到,當(dāng)所有服務(wù)器都不能工作時(shí),就會(huì)啟動(dòng)備份服務(wù)器。好了,backup服務(wù)器就配置到這里,下面我們來(lái)配置ip_hash負(fù)載均衡。

15.配置ip_hash負(fù)載均衡

ip_hash,每個(gè)請(qǐng)求按訪問(wèn)IP的hash結(jié)果分配,這樣來(lái)自同一個(gè)IP的訪客固定訪問(wèn)一個(gè)后端服務(wù)器,有效解決了動(dòng)態(tài)網(wǎng)頁(yè)存在的session共享問(wèn)題。(一般電子商務(wù)網(wǎng)站用的比較多)

[root@nginx ~]# vim /etc/nginx/nginx.conf

upstream webservers {

ip_hash;

server 192.168.18.201 weight=1 max_fails=2 fail_timeout=2;

server 192.168.18.202 weight=1 max_fails=2 fail_timeout=2;

#server 127.0.0.1:8080 backup;

}

注,當(dāng)負(fù)載調(diào)度算法為ip_hash時(shí),后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài)不能有backup。(有人可能會(huì)問(wèn),為什么呢?大家想啊,如果負(fù)載均衡把你分配到backup服務(wù)器上,你能訪問(wèn)到頁(yè)面嗎?不能,所以了不能配置backup服務(wù)器)

16.重新加載一下服務(wù)器

[root@nginx ~]# service nginx reload

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

重新載入 nginx: [確定]

17.測(cè)試一下

Nginx負(fù)載均衡,實(shí)現(xiàn)我們網(wǎng)站的高可用性

注,大家可以看到,你不斷的刷新頁(yè)面一直會(huì)顯示的民Web2,說(shuō)明ip_hash負(fù)載均衡配置成功。下面我們來(lái)統(tǒng)計(jì)一下Web2的訪問(wèn)連接數(shù)。

18.統(tǒng)計(jì)Web2的訪問(wèn)連接數(shù)

[root@web2 ~]# netstat -an | grep :80 | wc -l

304

注,你不斷的刷新,連接數(shù)會(huì)越來(lái)越多。好了,nginx的負(fù)載均衡就全部演示到這里。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多