使用Nginx實現多臺服務器網站負載均衡的配置方法介紹

1.準備工作

結合本文場景,需要安裝Nginx和PHP環境

1.1 Linux系統安裝Nginx

安裝nginx

1.2 準備三臺服務器

服務器ip分別是:

http://20.20.24.10/ —主服務器
http://20.20.24.11:8080/ —從服務器
http://20.20.24.12:8080/ —從服務器

保證每臺服務器可以正常訪問,關閉防火牆和selinux

setenforce 0
service iptables stop

也可以開啓防火牆,設置ip互相訪問

配置不同的web頁面,用於區分是否實現負載均衡,如 :
http://20.20.24.11:8080/ —從服務器 顯示頁面如下:
在這裏插入圖片描述
http://20.20.24.12:8080/ —從服務器 顯示頁面如下:
在這裏插入圖片描述

1.3配置主服務器nginx訪問路徑

 
 //在http節點下,加入upstream節點,配置代理多臺服務器
upstream  slbserver {
       server    20.20.24.11:8080;
       server    20.20.24.12:8080;
}
server {
        listen       80;
        server_name  localhost;
        error_log /var/log/nginx/localhost-error.log;
        rewrite_log on;
        #access_log  logs/host.access.log  main;
        root   /usr/local/nginx/html;
        
        //將server節點下的location節點中的proxy_pass配置爲:http:// + upstream名稱,如下:
        location / {
             proxy_pass http://slbserver;
        }
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root           /usr/local/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  LOCAL_ENV          "localhost";
            include        fastcgi_params;
        }

配置完畢,保存,重啓nginx配置生效

service nginx reload

在這裏插入圖片描述

1.4訪問主服務器

打開網頁瀏覽:http://20.20.24.10/

第一次看到的是http://20.20.24.11:8080/ 從服務器的頁面
在這裏插入圖片描述

再次刷新看到的是http://20.20.24.12:8080/ 從服務器的頁面

在這裏插入圖片描述
快速刷新,可以看到頁面之間的轉換,至此實現nginx負載均衡

2.Nginx負載均衡的幾種不同方式介紹

2.1 輪詢

輪詢方式是Nginx負載默認的方式,顧名思義,所有請求都按照時間順序分配到不同的服務上,如果服務Down掉,可以自動剔除,如下配置後輪訓20.20.24.11服務和20.20.24.12服務

upstream  slbserver {
       server    20.20.24.11:8080;
       server    20.20.24.12:8080;
}

2.2 權重

指定每個服務的權重比例,weight和訪問比率成正比,通常用於後端服務機器性能不統一,將性能好的分配權重高來發揮服務器最大性能,如下配置後20.20.24.12服務的訪問比率會是20.20.24.11服務的二倍。


upstream  slbserver {
       server    20.20.24.11:8080 weight=1;
       server    20.20.24.12:8080 weight=2;
}

再次訪問主服務器,則會發現12的頻率要比11的高兩倍

2.3 iphash

每個請求都根據訪問ip的hash結果分配,經過這樣的處理,每個訪客固定訪問一個後端服務,如下配置(ip_hash可以和weight配合使用)

upstream  slbserver {
       ip_hash;
       server    20.20.24.11:8080 weight=1;
       server    20.20.24.12:8080 weight=2;
}

配置之後,在訪問主服務器時,發現當前IP地址固定訪問了12從服務器的頁面,不會再跳轉到11從服務器的頁面

2.4 最少連接

將請求分配到連接數最少的服務上

upstream  slbserver {
       least_conn;
       server    20.20.24.11:8080 weight=1;
       server    20.20.24.12:8080 weight=2;
}

2.5 fair服務器的響應時間來分配

按後端服務器的響應時間來分配請求,響應時間短的優先分配。

upstream  slbserver {
       fair;
       server    20.20.24.11:8080 weight=1;
       server    20.20.24.12:8080 weight=2;
}

若是未安裝upstream-fair 插件,重啓nginx會報錯,需要先安裝之後再使用

3.Nginx配置

以輪循爲例,如下是nginx.conf完整代碼

vim nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}


http {
  upstream  slbserver {
       server    20.20.24.11:8080;
       server    20.20.24.12:8080;
}


   server {
       listen       10000;
       server_name  localhost;

       location / {
        proxy_pass http://slbserver ;
        proxy_redirect default;
      }

    }

}


如果要修改負載均衡算法修改對應upstream模塊即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章