連載
» 2014年09月18日 17時47分 UPDATE

これから始める人のためのNginx(3):NginxをWebサーバー“以外”でも徹底活用する (1/4)

Nginxは高速化だけではありません。Webサーバー以外への応用事例として、ロードバランサー、HTTPS対応、WAFとしての利用を紹介します。

[鶴長鎮一,@IT]
「これから始める人のためのNginx」のインデックス

連載目次

Nginxの活用

 「高速・軽量・高機能WebサーバーのNginx」連載の最終回にあたり、今回はNginxのWebサーバー以外の活用方法を紹介します。

 NginxはWebサーバー以外にも、ロードバランサーやHTTPSサーバー、WAF(Webアプリケーションファイアウォール)、キャッシュサーバーとして利用することができます。そもそもNginxが開発されたのは、Apache HTTPDのロードバランシング機能に対するパフォーマンス不足からでした。そのためNginxのロードバランシング機能はパフォーマンスが高く、またさまざまな付加機能を持ち合わせています。

 例えばHTTPSとロードバランサーを組み合わせHTTPSアクセラレーションを実現したり、WAFとロードバランサーを組み合わせ、セキュリティゲートウェイとして利用したりが可能です。

図1 Nginxの活用方法

インストール環境

 今回はプラットフォームとして、2014年6月にメジャーバージョンアップ版がリリースされたばかりのCentOS 7 1406を使用します。またNginxには公式パッケージを使ってインストールしたMainline version(注1)を使用します。CentOS 6.5へのインストール方法は前回解説しましたが、CentOS 7では手順が一部異なるため補足します。

(注1)

Mainline versionとStable versionの違いは、第1回の記事を参考にしてください。


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
リリースパッケージをインストールし、Nginxの公式リポジトリを登録

 デフォルトでは、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」に分割されます。

図2「ネスト(入れ子)された設定ファイル」

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
       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。