nginxを使って手軽にロードバランサを構築
schedule 2020/09/07 refresh 2023/11/08
こんにちは。セシオスサポートチームです。
今回は Nginx を使って疑似ロードバランサを構築します。
検証で初めてnginxを使ってみたのですが、バランシングの設定やSSLの終端設定などが思いの外簡単にできたのでご紹介したいと思います。
目的
Nginxを使ってSSL終端を行い、任意のサーバーへ負荷分散をおこなう。
前提
- CentOS7のインストールと初期構築が完了していること
- SSLサーバー証明書が発行済みであること
手順
nginxのリポジトリファイルを作成します。
# vi /etc/yum.repos.d/nginx.repo
|
nginx.repo
|
yum インストール
# yum install nginx -y
|
SSLサーバー証明書を任意のディレクトリへ配置してください。
検証用なので、LetsEncrypt などで用意するのがお手軽かと思います。
ここでは説明は省略します。
標準ファイル無効化
# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.disable
|
nginx設定ファイル作成
# vi /etc/nginx/conf.d/loadbalancer.conf
|
upstream loadbalancer {
|
upstream という記述で負荷分散を行うサーバーを指定します。
loadbalancer と指定している箇所は好きな名前で構いません。
振り分けの方式については特に指定しなかった場合はラウンドロビン方式にて振り分けを行います。
IP単位で振り分けたい場合は ip_hash を定義します。
upstream loadbalancer {
|
location ディレクティブ中にある、 proxy_pass の指定は upstream で定義した名前を設定してください。
今回はloadbalancer として定義していますが、その他の名前にする場合は proxy_passも同様に変更する必要があります。
設定を保存したら、テストを実行し、エラーが出ないか確認します。
# nginx -t
|
成功メッセージ
nginx: configuration file /etc/nginx/nginx.conf test is successful
|
test is successfulと表示されれば問題ありません。
nginx 起動
# systemctl enable nginx
|
以上で構築手順は完了です。
いかがでしょうか?
Nginxは設定の項目名がapahceに寄せてあって、なんとなくわかりやすいですし、
xmlのような形式ではないので、見やすくていいですね。
以上、セシオスサポートチームでした。