読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

Nginx でロードバランサ構築

前回Apacheでロードバランサを構築しました。 今回はNginxを使ってみましょう。Nginxは軽量かつ高速ということで最近はApacheよりもシェアが大きくなっているそうです。

 

◆環境

Ubuntu 14.04

Nginx 1.4.6 (ロードバランサ用)

Apache 2.4.7 (Webサーバ用)

 

◆環境構築

前回同様に

・ロードバランサx1

・Webサーバx2

で構築します。vagrant で3台サーバを作って2台Webサーバをたてるところまでは全く同じなので、前回の内容を参考にして下さい。

◆ロードバランサ構築 lb サーバにSSHでログイン後、

$ sudo aptitude update
$ sudo aptitude install nginx

 

◆設定ファイル編集

2つファイルを編集します。

/etc/nginx/nginx.conf

/etc/nginx/conf.d/default.conf

前者は nginx 共通の設定と考えて下さい。後者は各バーチャルホスト毎の設定です。後者は最初は存在してないので新規作成します。 /etc/nginx/nginx.conf を編集します。

        upstream backend {
                server 192.168.33.11;
                server 192.168.33.12;
        }

をという設定を以下のように http の部分に追記します。

http: {
        # 色々コメントや元からある設定
        upstream backend {
                server 192.168.33.11;
                server 192.168.33.12;
        }
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

この backend という変数を後で使うので覚えておいてください。ちなみに変数名は任意です。 その他様々なオプション設定がありますが、詳細は以下のサイトを参考にしてください。

nginxをロードバランサとして使うときのTips

 

次に /etc/nginx/conf.d/default.conf を新規作成します

server {
        listen       80;
        server_name  localhost 192.168.33.10;
        location / {
                proxy_pass http://backend;
        }
}

ここでリクエストを流す対象に先ほどの backend の変数を使います。 server_name にはホスト名を書きますが、特に設定していないので localhost と IP で一旦進めましょう。 作成できたら再起動します。

$ sudo service nginx restart

 

◆動作確認

vagrantのホスト側から curl で叩いてみましょう

$ curl 192.168.33.10
web1
$ curl 192.168.33.10
web2
$ curl 192.168.33.10
web1

問題なく分散されていますね。

お疲れ様でした。

 

ソース:

nginxでロードバランサー。httpとhttpsの両方で使う

Nginx + WordPress ロードバランサー篇

nginxをロードバランサとして使うときのTips

nginxのserver_nameで複数ドメイン運用