NginxをWebサーバー“以外”でも徹底活用する:これから始める人のためのNginx(3)(1/4 ページ)
Nginxは高速化だけではありません。Webサーバー以外への応用事例として、ロードバランサー、HTTPS対応、WAFとしての利用を紹介します。
Nginxの活用
「高速・軽量・高機能WebサーバーのNginx」連載の最終回にあたり、今回はNginxのWebサーバー以外の活用方法を紹介します。
NginxはWebサーバー以外にも、ロードバランサーやHTTPSサーバー、WAF(Webアプリケーションファイアウォール)、キャッシュサーバーとして利用することができます。そもそもNginxが開発されたのは、Apache HTTPDのロードバランシング機能に対するパフォーマンス不足からでした。そのためNginxのロードバランシング機能はパフォーマンスが高く、またさまざまな付加機能を持ち合わせています。
例えばHTTPSとロードバランサーを組み合わせHTTPSアクセラレーションを実現したり、WAFとロードバランサーを組み合わせ、セキュリティゲートウェイとして利用したりが可能です。
インストール環境
今回はプラットフォームとして、2014年6月にメジャーバージョンアップ版がリリースされたばかりのCentOS 7 1406を使用します。またNginxには公式パッケージを使ってインストールしたMainline version(注1)を使用します。CentOS 6.5へのインストール方法は前回解説しましたが、CentOS 7では手順が一部異なるため補足します。
Nginx公式パッケージを利用したインストール(CentOS 7の場合)
CentOS 7にNginx社の公式パッケージを使ってNginxをインストールします。Nginx社のリポジトリを登録し、パッケージをオンラインインストールできるようにします。なお作業は管理者権限で行います。
# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
デフォルトでは、Stable version(2014年9月現在、1.6.1)がインストールされます。Mainline(2014年9月現在、1.7.4)をインストールするには「/etc/yum.repos.d/nginx.repo 」ファイルを修正する必要があります。
修正前)baseurl=http://nginx.org/packages/centos/7/$basearch/
修正後)baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
リポジトリを無事登録できたら、Nginxをオンラインインストールします。
# yum install nginx <--Nginxインストール
設定ファイルのパスと注意
CentOS 7に公式パッケージを使ってNginxをインストールすると、設定ファイルは「/etc/nginx」ディレクトリに作成されます。このうち主に利用するのは以下の2つです。
/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf
本来のnginx.confはネスト構造になっており、「server{}」ディレクティブは「httpd{}」ディレクティブにネストされていますが、Nginx公式パッケージを使ってインストールすると、「server{}」ディレクティブに関する設定は外部ファイルの「/etc/nginx/conf.d/default.conf」に分割されます。
Nginxの起動/停止/再起動
設定ファイル修正後Nginxサービスを起動します。CentOS 7ではサービスの起動にsystemctlコマンドを利用します。
# systemctl start nginx.service <--サービス開始
設定ファイル修正後、変更を反映させるには、起動中のサービスを再起動する必要があります。サービスの再起動はsystemctlコマンドの引数に「restart」を指定します。また停止する場合は引数に「stop」を指定します。サービスの起動や再起動に失敗した場合、「systemctl status...」で原因を特定することができます。
# systemctl stop nginx.service <--サービス停止 # systemctl restart nginx.service <--サービス再起動 # systemctl status nginx.service <--サービスステータスの表示
サーバー起動時にNginxサービスを自動的に開始するには、次のようにします。
# systemctl enable nginx.service
Copyright © ITmedia, Inc. All Rights Reserved.