NGINX コミュニティ版のインストール

こんにちは。サイオステクノロジー OSS サポート担当 Y です。

今回は NGINX をソースコードからインストールしてみます。(※以下の内容は CentOS 7.4/NGINX 1.12.2 にて検証しています。)

■はじめに

NGINX は高速かつ軽量な Web/Proxy サーバとして知名度が上がってきており、最近はシェアが拡大しているという話も多く耳にします。

また、コミュニティ版には含まれていない追加機能を提供している商用版の NGINX Plus という製品があり、この NGINX Plus は開発元である NGINX 社がサポートサービスも提供しているため、通常の OSS 製品よりエンタープライズ領域に採用するハードルが低くなっているのも魅力の一つではないでしょうか。

今更な部分があるかもしれませんが、今回はコミュニティ版の NGINX をソースコードからインストールしてみました。

■検証

ではさっそくインストール作業を行なってみます。まずはソースコードの入手からですが、NGINX のソースコードは以下の URL から入手可能です。

(http://nginx.org/en/download.html)

今回は /usr/local/src の配下にソースコードをダウンロード及び展開して作業を行います。

ソースコードのダウンロード及び展開が完了したら、展開されたディレクトリ “nginx-1.12.2” 内にある configure スクリプトを実行します。

なお、configure スクリプトのオプションについては、以下の URL に記載されています。

(http://nginx.org/en/docs/configure.html)

また、上記オプションについては以下のコマンドでも確認可能です。

ということで実際に configure スクリプトを実行するとさっそくエラーになってしまいました。そうですね… メッセージの通り C コンパイラがインストールされていません…

ということで gcc をインストールします。実はこのタイミングで併せてインストールしておいた方が良いパッケージがあるのですが、今回はインストール検証なので一つずつエラーを眺めながら作業を実施してみようと思います。

それでは再度 configure スクリプトを実行してみます。すると今度は別のエラーが出力されました。

エラーの内容を見ると、”PCRE library” が必要なようです。ということで、pcre-devel パッケージをインストールします。

pcre-devel のインストールが完了したらもう一度 configure スクリプトを実行してみます。すると、またまたエラーが出力されました。

今度は “zlib library” が必要だと言われているようです。ということで zlib-devel パッケージをインストールします。

さあ、zlib-devel のインストールが終わったら、めげずに configure スクリプトを実行してみます。すると、今度は無事 configure スクリプトの実行が完了しました!

このままでも以降の作業は実施可能なのですが、よくよく見ると “OpenSSL library is not used” と出力されています。ソースコードからインストールする場合、デフォルトだと SSL は利用できない状態になっているようですが、常時 SSL 化という言葉が叫ばれる昨今なので、SSL を利用できるようにし、通信に HTTPS も使える形でビルドしたいと思います。

SSL を有効にしてビルドする場合は configure スクリプトに “–with-http_ssl_module” を付けて実行します。が、ここでもエラーが出力されました。

“OpenSSL library” が必要であると言われていますね。ということで、今度は openssl-devel パッケージをインストールします。

openssl-devel のインストールが終わったら、再度 “–with-http_ssl_module” オプションを付けて configure スクリプトを実行します。

すると、無事 configure スクリプトの実行が完了し、”using system OpenSSL library” と出力されているため、SSL が利用できる状態になっているようです。また、configure スクリプト実行後の各出力からバイナリファイル等のインストール先 (デフォルトの場合 /usr/local/nginx 配下) が確認できます。(詳細は割愛しますが、このインストール先のパスは configure スクリプトのオプションで指定可能です。configure –help で確認してみて下さい。)

configure スクリプトの実行が完了したら、make コマンドでビルドします。(環境によっては “yum install -y make” で make コマンドをインストールする必要があるかもしれません。)

make コマンドが完了したら make install にてビルドしたバイナリ等をインストールします。(インストール先は、configure スクリプト実行時に出力されていた /usr/local/nginx 配下です。)

インストールが完了したらインストール先のディレクトリを確認してみます。すると、実行ファイルや設定ファイルのサンプル等が確認できると思います。

実行ファイルに -v や -V オプションを付けて実行すると、バージョン情報等を確認することが可能です。

また、インストール直後の状態でも上記設定ファイルを使って起動可能なので、試しに起動してみましょう。(“-c” は設定ファイルを指定するオプションです。)

ps コマンドで確認すると、nginx プロセスが動作していることが確認できます。また、ps コマンドの結果から worker process が nobody ユーザで動作していることが確認できます。

そのため、nginx ユーザを作成し、nginx ユーザで worker process が動作するように設定しておきます。まずは nginx ユーザを作成しますが、このユーザでサーバにログインする必要は無いので、”-s /sbin/nologin” と “-M” オプションを付けておきます。

次に、NGINX の設定ファイル “nginx.conf” にて、worker process の実行ユーザを指定するディレクティブ “user” に、作成した nginx ユーザを指定します。

設定ファイルの編集が完了したら、”nginx -s reload” コマンドで設定ファイルを再読み込みします。すると、worker process の実行ユーザが nginx ユーザになっていることが確認できます。

また、この状態で NGINX が listen している 80番ポートに対してリクエストを送信すると、デフォルトの index ファイルの内容がレスポンスとして出力されると思います。(ブラウザからアクセスすると綺麗に見えると思います。)

ということで、インストール作業はここまでです。(ちなみに、nginx プロセスを停止させる場合は “nginx -s stop” コマンドを実行します。)

■最後に

さて、今回は NGINX をソースコードからインストールしただけですが、NGINX は主に Web サーバ/Reverse Proxy サーバとしての様々な機能を有しています。次回以降、この NGINX の機能を実際に検証してみようと思います。

>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*