Debian 10 Buster
Sponsored Link

Nginx : 負荷分散の設定2019/08/08

 
Nginx での負荷分散の設定です。ロードバランサーとして利用できます。
当例では以下のような環境を例に設定します。
-----------+---------------------------+-----
           |                           |
           |10.0.0.30                  |
+----------+-----------+               |
|   [ www.srv.world ]  |               |
|        Nginx         |               |
+----------------------+               |
                                       |
------------+--------------------------+--------------------------+------------
            |                          |                          |
            |10.0.0.51                 |10.0.0.52                 |10.0.0.53
+-----------+----------+   +-----------+----------+   +-----------+----------+
| [ node01.srv.world ] |   | [ node02.srv.world ] |   | [ node03.srv.world ] |
|      Web Server#1    |   |      Web Server#2    |   |      Web Server#3    |
+----------------------+   +----------------------+   +----------------------+

[1] Nginx サーバーへのリクエストをバックエンド Web サーバーへ負荷分散をするように設定します。
root@www:~#
vi /etc/nginx/nginx.conf
# http セクション内に追記

# backup を指定すると backup 以外が通信不能な場合のみバランシング

# weight=* で重み付け (weight=2 の場合, 指定無サーバーと 2:1 の割合でバランシング)

http {
        upstream backends {
                server node01.srv.world:80 weight=2;
                server node02.srv.world:80;
                server node03.srv.world:80 backup;
        }

root@www:~#
vi /etc/nginx/sites-available/default
# server セクション内を以下のように変更

server {
        listen      80 default_server;
        listen      [::]:80 default_server;
        server_name www.srv.world;

        proxy_redirect          off;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        Host $http_host;

        location / {
                proxy_pass http://backends;
        }
}

root@www:~#
systemctl restart nginx

[2] 任意のクライアントホストからフロントエンドの Nginx サーバーへ HTTP アクセスして動作を確認します。
関連コンテンツ