grasys blog
grasysブログ

NGINX Plusのインストール方法とLBの基本設定

こんにちはtsunodaです。
先日、東京エレクトロンデバイス(TED)様、F5ネットワークスジャパン合同会社様のご協力の元、NGINX Plus の機能検証を実施させていただきました。

どんな検証をしたのかの一覧紹介ブログはこちら

今回はNGINX Plusのインストール方法と、ロードバランサ機能の基本設定についてご紹介します。
掘り掘りその1。

NGINX Plus とは

NGINX Plusは、オープンソース版のNGINXに様々な機能を拡張し搭載した商用版ソフトウェアです。
NGINX Plusとは

実行環境

今回の検証は以下の環境で実施しました。

Google Cloud

サーバー:Compute Engine
OS:Centos7
Region:asia-northeast1(東京)

NGINX Plusのインストール

まずはこちら、https://cs.nginx.com/repo_setupへアクセスします。
ドロップダウンメニューから、インストールするOSを選択します。
今回はCentos7で検証したので、RHEL 7.4+ / CentOS 7.4+ / Oracle Linux 7.4+を選択しました。

すると手順説明とコマンドが出てきてくれます。

ちなみにここで、

nginx-repo.key
nginx-repo.crt

とあります。NGINX Plusを利用するためには、その際に発行されるライセンスが必要となります。
ライセンスを所定のディレクトリに配置する必要があります。
あとはここ↓

NGINX App Protect、modsecurity、を使用する場合はこちらのインストール準備が必要です。

順を追って指示通り実行していけばインストールできます。

Google Marketplaceからも使用可能

Google MarketplaceからもNGINX PlusをGoogle Cloudにインストールすることができます。参考
高性能のアプリケーション配信プラットフォーム、ロードバランサー、ウェブサーバーであるNGINX Plusは、仮想マシン(VM)イメージとしてGoogle Cloud Platformで利用できます。
VMイメージには、Compute Engineでの使用に最適化された最新バージョンのNGINX Plusが含まれています。
Google MarketplaceのNGINX Plusページにアクセスし、セットアップすることが可能です。

ロードバランサ機能

ではロードバランサ機能のご紹介。
今回は基本的な設定をご紹介させていただきます。

まずはOSS版でも可能な設定をご紹介します。
例えばバックエンドとして2台のwebサーバを設定している場合、基本的な設定はこんな感じ↓

upstream backend {
  zone backend 64k;

  server <backend_server1の内部IP>;
  server <backend_server2の内部IP>;
}

以上、これでserver1、server2へのバランシングは完了です!笑
あとはserver directive設定でbackendへproxyさせる設定を書いたりすればOKです。

server {
[略]
  location / {
    proxy_pass http://backend;
    health_check interval=2s fails=2 passes=5 uri=/ match=healthcheck;
  }
[略]
}

そして、NGINX Plusではslow_start設定やweight設定、最大接続数設定などが可能です。

例えば、振り分けを偏らせるよう重み付け設定も可能ですし、backendがどちらも落ちた場合のbackupサーバーも設定可能です。(weight,backup設定)
スロースタート機能を追加して、新しいサーバとリカバリされたサーバを負荷分散グループに適切に追加もできます。(slow_start設定)
接続制限も可能です。(max_conns設定)
queueに配置する接続の最大数とそれぞれのタイムアウト時間の設定もできます。(queue、timeout設定)

upstream backend {
  zone backend 64k;
  queue 750 timeout=30s;

  server <backend_server1の内部IP> weight=1 max_conns=150;
  server <backend_server2の内部IP> weight=2 max_conns=250 slow_start=30s;
  server <backup_server2の内部IP> backup max_conns=150;
}

NGINX Plusで使用できる機能は、複数台のbackendサーバーへのアクセス偏りなども防げて安定したサービス提供に役立ちます。
NGINX Plus ロードバランサ機能

まとめ

書いていて思いましたが、設定簡単で良いなぁ〜。
ロードバランサ機能は挙動の確認も分かりやすかったです。
NGINX Plusが気になっているけど無料トライアルでどれやろうかな!という方は手始めにおすすめです。
しかもHTTP/TCP/UDPサポート、L7ルーティング、アクティブヘルスチェックなどなど機能として充実しています。
backendサーバの優先度も設定できて冗長化も可能、Cookieを持たせたセッション維持も可能です。
アクティブヘルスチェックはソースサーバを監視するために使用できます。
どう?結構良いよね?笑
アクティブヘルスチェックとセッション維持についても近々公開ですので、そちらも是非!

さらに次回はTED様のブログが公開されますのでお楽しみに!
https://cn.teldevice.co.jp/blog/


株式会社grasys(グラシス)は、技術が好きで一緒に夢中になれる仲間を募集しています。

grasysは、大規模・高負荷・高集積・高密度なシステムを多く扱っているITインフラの会社です。Google Cloud、Amazon Web Services (AWS)、Microsoft Azureの最先端技術を活用してクラウドインフラやデータ分析基盤など、ITシステムの重要な基盤を設計・構築し、改善を続けながら運用しています。

お客様の課題解決をしながら技術を広げたい方、攻めのインフラ技術を習得したい方、とことん技術を追求したい方にとって素晴らしい環境が、grasysにはあります。
お気軽にご連絡ください。