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 アクセスして動作を確認します。 |
Sponsored Link |