欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx搭建負載均衡集群的實現(xiàn)

 更新時間:2020年03月19日 11:25:56   作者:苦逼運維  
這篇文章主要介紹了Nginx搭建負載均衡集群的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

(1).實驗環(huán)境

youxi1  192.168.5.101  負載均衡器

youxi2  192.168.5.102  主機1

youxi3  192.168.5.103  主機2

(2).Nginx負載均衡策略

  nginx的負載均衡用于upstream模板定義的后端服務(wù)器列表中選取一臺服務(wù)器接收用戶的請求。一個基本的upstream模塊如下:

upstream [服務(wù)器組名稱]{
  server [IP地址]:[端口號];
  server [IP地址]:[端口號];
  ....
}

  在upstream模塊配置完成后,要讓指定的訪問反向代理到服務(wù)器列表,格式如下:

location ~ .*$ {
  index index.jsp index.html;
  proxy_pass http://[服務(wù)器組名稱];
}

  擴展:nginx的location配置規(guī)則:http://www.dbjr.com.cn/article/182472.htm

  這樣就完成了最基本的負載均衡,但是這并不能滿足實際需求。目前Nginx的upstream模塊支持6種方式的負載均衡策略(算法):輪詢(默認方式)、weight(權(quán)重方式)、ip_hash(依據(jù)ip分配方式)、least_conn(最少連接方式)、fair(第三方提供的響應(yīng)時間方式)、url_hash(第三方通過的依據(jù)URL分配方式)。

 1)輪詢

  最基本的配置方法,是upstream模塊默認的負載均衡策略。每個請求會按時間順序平均分配到不同的后端服務(wù)器。有如下參數(shù):

fail_timeout 與max_fails結(jié)合使用
max_fails 在fail_timeout參數(shù)設(shè)置的時間內(nèi)最大失敗次數(shù)。如果在這個時間內(nèi),所有該服務(wù)器的請求都失敗了,那么認為該服務(wù)器停機
fail_time 服務(wù)器被認為停機的時長,默認10s(被認為停機的服務(wù)器嘗試間隔?)
backup 標記該服務(wù)器為備用服務(wù)器。當主服務(wù)器停止時,請求會被發(fā)送到它這里
down 標記服務(wù)器永久停機

  注意:1.down標記的服務(wù)器會自動剔除;2.缺省就是輪詢;3.此策略適合服務(wù)器配置無狀態(tài)且短平塊的服務(wù)使用

 2)weight

  權(quán)重方式,在輪詢策略的基礎(chǔ)上指定輪詢的幾率。也可以認為是在輪詢的基礎(chǔ)上新增了一個weight的參數(shù),此參數(shù)指定輪詢的幾率,值為number。upstream模塊配置模板如下:

upstream [服務(wù)器組名稱]{
  server [IP地址]:[端口號] weight=2;
  server [IP地址]:[端口號];
  ....
}

  在該例子中,沒有weight參數(shù)的服務(wù)器默認為1,weight的數(shù)值與訪問比例成正比,所有weight值的總和為一個循環(huán)單位,服務(wù)器自身的weight值為循環(huán)單位內(nèi)的輪詢次數(shù)。

  注意:1.權(quán)重越高分配到的請求越多;2.此策略可以和least_conn策略、iphash策略結(jié)合使用;3.此策略比較適合服務(wù)器硬件配置差距較大的情況。

 3)ip_hash

  依據(jù)ip分配方式,指定負載均衡器按照基于客戶端IP的分配方式,這個方法確保了相同的客戶端請求一致發(fā)送到相同的服務(wù)器,以保證session會話。這樣每個訪客都固定訪問一個后端服務(wù)器,可以解決session不能跨服務(wù)器的問題。upstream模塊配置模板如下:

upstream [服務(wù)器組名稱]{
  ip_hash;
  server [IP地址]:[端口號] weight=2;
  server [IP地址]:[端口號];
  ....
}

  注意:1.nginx1.3.1之前的版本不能在ip_hash中使用權(quán)重(weight);2..ip_hash不能與backup同時使用;3.此策略適合有狀態(tài)服務(wù)的程序,比如session;4.當有服務(wù)器需要剔除,必須手動down掉。

 4)least_conn

  最少連接方式,把請求發(fā)給鏈接數(shù)最少的后端服務(wù)器。輪詢是把請求平均分配給各個后端,使它們的負載大致相同。但是,有些請求占用的時間很長,會導(dǎo)致其所在的后端負載較高。這種情況下,least_conn這種方式就可以達到更好的負載均衡效果。upstream模塊配置模板如下:

upstream [服務(wù)器組名稱]{
  least_conn;
  server [IP地址]:[端口號] weight=2;
  server [IP地址]:[端口號];
  ....
}

  注意:此策略適合請求處理時間長短不一造成的服務(wù)器過載情況。

 5)fair

  響應(yīng)時間方式,按照服務(wù)器端的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。upstream模塊配置模板如下:

upstream [服務(wù)器組名稱]{
  server [IP地址]:[端口號] weight=2;
  server [IP地址]:[端口號];
  ....
  fair;
}

  注意:需要安裝第三方插件。

 6)url_hash

  url分配方式,按訪問url的hash結(jié)果來分配請求,使每個url定向到同一個后端服務(wù)器,要配合緩存命中來使用。同一個資源多次請求可能會到達不同的服務(wù)器上,導(dǎo)致不必要的多次下載,緩存命中率不高,以及一些資源時間的浪費。而使用url_hash,可以使得同一個url(也就是同一個資源請求)會到達同一臺服務(wù)器,一旦緩存住了資源,再次收到請求,就可以在緩存中讀取。upstream模塊配置模板如下:

upstream [服務(wù)器組名稱]{
  hash $request_uri;
  server [IP地址]:[端口號] weight=2;
  server [IP地址]:[端口號];
  ....
}

  注意:1.需要安裝第三方插件;2.uri,是i,不是小寫的L。

(3).實驗

 1)在負載均衡器youxi1上編譯安裝nginx

  安裝nginx的依賴包

[root@youxi1 ~]# yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel

  上傳nginx源碼包nginx-1.14.1.tar.gz,解壓安裝

[root@youxi1 ~]# tar xf nginx-1.14.1.tar.gz -C /usr/local/src/
[root@youxi1 ~]# cd /usr/local/src/nginx-1.14.1/
[root@youxi1 nginx-1.14.1]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module
[root@youxi1 nginx-1.14.1]# make && make install
[root@youxi1 nginx-1.14.1]# echo $?
0

  參數(shù)說明:

    --with-http_dav_module,啟用ngx_http_dav_module支持(增加PUT,DELETE,MKCOL:創(chuàng)建集合,COPY和MOVE方法)默認情況下為關(guān)閉,需編譯開啟;

    --with-http_stub_status_module,啟用ngx_http_stub_status_module支持(獲取nginx自上次啟動以來的工作狀態(tài));

    --with-http_addition_module,啟用ngx_http_addition_module支持(作為一個輸出過濾器,支持不完全緩沖,分部分響應(yīng)請求);

    --with-http_sub_module,啟用ngx_http_sub_module支持(允許用一些其他文本替換nginx響應(yīng)中的一些文本);

    --with-http_flv_module,啟用ngx_http_flv_module支持(提供尋求內(nèi)存使用基于時間的偏移量文件);

    --with-http_mp4_module,啟用對mp4文件支持(提供尋求內(nèi)存使用基于時間的偏移量文件)。

  生成nginx用戶

[root@youxi1 nginx-1.14.1]# useradd -M -s /sbin/nologin nginx

  啟動并添加開機自啟

[root@youxi1 nginx-1.14.1]# /usr/local/nginx/sbin/nginx
[root@youxi1 nginx-1.14.1]# echo /usr/local/nginx/sbin/nginx >> /etc/rc.local
[root@youxi1 nginx-1.14.1]# chmod +x /etc/rc.d/rc.local

  如果防火墻是開啟的記得添加端口號

[root@youxi1 nginx-1.14.1]# firewall-cmd --permanent --zone=public --add-port=80/tcp && firewall-cmd --reload
success
success

  查看下界面,看看nginx是否正常安裝

  測試完成后,修改nginx的配置文件,最后重啟nginx

[root@youxi1 nginx-1.14.1]# cp /usr/local/nginx/conf/nginx.conf{,.bak}
[root@youxi1 nginx-1.14.1]# vim /usr/local/nginx/conf/nginx.conf
user nginx;  //第2行
location / {  //第43行起
  root html;
  index index.html index.htm;
  if ($request_uri ~* \.html$){
    proxy_pass http://htmlservers;
  }
  if ($request_uri ~* \.php$){
    proxy_pass http://phpservers;
  }
  proxy_pass http://picservers;
}
upstream htmlservers {  //在http模塊下,server模塊平級處添加
  server 192.168.5.102:80;
  server 192.168.5.103:80;
}
upstream phpservers{
  server 192.168.5.102:80;
  server 192.168.5.103:80;
}
upstream picservers {
  server 192.168.5.102:80;
  server 192.168.5.103:80;
}
[root@youxi1 nginx-1.14.1]# /usr/local/nginx/sbin/nginx -s reload

 2)在youxi2和youxi3上布置網(wǎng)頁程序

[root@youxi2 ~]# yum -y install httpd
[root@youxi2 ~]# echo youxi2 > /var/www/html/index.html
[root@youxi2 ~]# echo youxi2.php > /var/www/html/index.php
[root@youxi2 ~]# echo youxi2.other > /var/www/html/index.jsp
[root@youxi2 ~]# systemctl start httpd.service
 
[root@youxi3 ~]# yum -y install httpd
[root@youxi3 ~]# echo youxi3 > /var/www/html/index.html
[root@youxi3 ~]# echo youxi3.php > /var/www/html/index.php
[root@youxi3 ~]# echo youxi3.other > /var/www/html/index.jsp
[root@youxi3 ~]# systemctl start httpd.service

  如果防火墻是開啟的,記得添加端口號

[root@youxi2 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp && firewall-cmd --reload
success
success
 
[root@youxi3 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp && firewall-cmd --reload
success
success

 3)測試

  首先測試html頁面

  接著測試php頁面

  最后測試其他頁面

參考:https://www.cnblogs.com/1214804270hacker/p/9325150.html

到此這篇關(guān)于Nginx搭建負載均衡集群的實現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx 負載均衡集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • keepalived結(jié)合nginx實現(xiàn)nginx高可用的方法

    keepalived結(jié)合nginx實現(xiàn)nginx高可用的方法

    這篇文章主要介紹了keepalived結(jié)合nginx實現(xiàn)nginx高可用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • nginx配置虛擬主機的詳細步驟

    nginx配置虛擬主機的詳細步驟

    虛擬主機提供了在同一臺服務(wù)器、同一組Nginx進程上運行多個網(wǎng)站的功能。本文通過三種方法給大家介紹配置虛擬主機的方法,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • 詳解 Nginx 負載均衡和反向代理配置和優(yōu)化

    詳解 Nginx 負載均衡和反向代理配置和優(yōu)化

    這篇文章主要介紹了詳解 Nginx 負載均衡和反向代理配置和優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • nginx配置PC站手機站分離實現(xiàn)重定向

    nginx配置PC站手機站分離實現(xiàn)重定向

    這篇文章主要介紹了nginx配置PC站手機站分離實現(xiàn)重定向,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • nginx日志配置指令詳解

    nginx日志配置指令詳解

    這篇文章主要介紹了nginx日志配置指令詳解,nginx有一個非常靈活的日志記錄模式,每個級別的配置可以有各自獨立的訪問日志,需要的朋友可以參考下
    2014-07-07
  • Nginx實現(xiàn)動靜分離的示例代碼

    Nginx實現(xiàn)動靜分離的示例代碼

    這篇文章主要介紹了Nginx實現(xiàn)動靜分離的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 如何通過nginx負載均衡跳轉(zhuǎn)https

    如何通過nginx負載均衡跳轉(zhuǎn)https

    這篇文章主要介紹了如何通過nginx負載均衡跳轉(zhuǎn)https的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • Nginx構(gòu)建Tomcat集群的操作方法

    Nginx構(gòu)建Tomcat集群的操作方法

    nginx是一款自由的、開源的、高性能的HTTP服務(wù)器和反向代理服務(wù)器;同時也是一個IMAP、POP3、SMTP代理服務(wù)器,這篇文章主要介紹了Nginx構(gòu)建Tomcat集群的問題,需要的朋友可以參考下
    2022-01-01
  • 解決國內(nèi)k8s的ingress-nginx鏡像無法正常pull拉取問題

    解決國內(nèi)k8s的ingress-nginx鏡像無法正常pull拉取問題

    本文主要介紹了解決國內(nèi)k8s的ingress-nginx鏡像無法正常pull拉取問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • nginx 502、413和404錯誤原因排查和解決辦法總結(jié)

    nginx 502、413和404錯誤原因排查和解決辦法總結(jié)

    這篇文章主要給大家介紹了NGINX 502錯誤排查,辦法總結(jié),Nginx 413錯誤的排查以及Nginx 400錯誤排查,文中通過代碼示例給出了詳細的排查方法和解決方案,需要的朋友可以參考下
    2023-12-12

最新評論