【入門】Nginx(エンジンエックス)とは?Apacheとの違いと初期設定

Webサイトを公開するときにはいろいろなサーバーが動いていますが、その中心となるのが「Webサーバー」と呼ばれる機能です。このWebサーバー用のソフトウェアには、種類と得意分野があります。Apacheが有名で多く利用されていますが、Nginx(エンジンエックス)も注目されています。処理速度や機能などが改善されているからです。この記事では、両者の違いから向いている用途や、インストールと設定方法などをわかりやすく解説しています。またWordPressを快適に動かす技術もあわせてご紹介します。
Nginx(エンジンエックス)とは?

Nginx(エンジンエックス)とは?

Apacheと比べてNginxは速いが、難しくて情報が少なさそう。そんなイメージが以前はあったと思います。さすがに今は情報が豊富になってきて、Apacheに慣れている方なら普通に利用できるようになりました。
Webサーバーのシェアは、NginxはApacheに次いで第2位です。(w3techs.com、2020年4月時点)このように普及してきた理由はどこにあるのでしょうか。まずは利用するメリットをご説明しましょう。

Nginx(エンジンエックス)とは?

Nginxを使うメリット

ポイントは以下の点に集約されると考えます。
高速
大量処理が得意
Webサイト利用を向上させる機能が豊富(のちほど解説)
設定は意外に容易(設定箇所は比較的少ない)

Apacheとの比較とメリット

この章ではNginxとApacheを比べることで、あらためてメリットを詳しく説明しています。
Apacheとの比較とメリット

Apacheとは結局何が違うか?

得意とする用途が異なるため、Webサイトの公開目的で使い分けをするのが賢いやり方と考えています。
カゴヤのサーバー研究室では、Apacheについても解説します。詳しくは以下のページをご覧ください。
Apacheとは?Webサーバーの仕組みと人気サーバーソフトを徹底解説

(1)動作方法の違いによる処理速度の向上

Webサーバーに同時に複数のアクセスがあった場合に、以下の動作の違いがあります。

Apache Nginx
同時・複数アクセスへの対処の仕方 1アクセスに対して、1つの対応 複数のアクセスに対して、1つの対応にまとまる
アクセス急増時のサーバーへの負荷 いっきに負荷増 アクセスに比例して負荷は急激に増えない
その結果Webサーバーの動き 遅くなり、ダウンしやすくなる 処理速度は維持し、ダウンしにくい

処理速度が速くなれば、Webサイトの利用者はストレスが減るメリットもあります。
検索エンジンの評価向上も期待できますね。

(2)機能面の違い

ApacheとNginxでどちらかだけにしかない機能は見当たらず、設定である程度対応できます。あとは、設定のしやすさや関連情報の豊富さ、関連プログラムの改良状況次第と考えます。

例えば、Webサーバーの負担を軽くして処理速度を上げる手段として、「リバースプロキシ」や「ロードバランサー」などがあります。これらの実現にはNginxが向いています。繰り返しになりますが動作方法に違いにより、Nginxの方が適していると考えるためです。

サーバー研究室では、サーバーの負荷を改善する方法をわかりやすく説明しています。あわせてご覧ください。

(1)リバースプロキシとは?仕組みをわかりやすく解説
(2)【図で理解】ロードバランサーとは?負荷分散の仕組みを解説

Nginxを使う上での留意点(デメリット)

一般的には、大量の動的コンテンツの公開には向かないことがNginxのデメリットとして挙げられます。比較的小規模のWebサイト運営の場合は、それほど神経質にならなくてもいいと考えます。

(1)大量の動的コンテンツの処理に不向き

動作方法の違いから、Apacheの方がNginxよりも円滑に動作します。そのため動画を中心としたWebサイトを運営する場合には、Apacheを選択する方が無難といえるでしょう。

(2)機能追加のしやすさ

専用の「モジュール」を追加すれば、ApacheだけでなくNginxも機能は拡張できます。Apacheの方が、実装方法について比較的充実し、情報が豊富でわかりやすい印象です。
一部ですが、それぞれの公式ページには以下の情報が掲載されています。

(1)(Apache)モジュール一覧
(2)NGINX 3rd Party Modules

(3)初心者向けの設定情報の少なさ

日本語で読める設定など技術情報が意外に少なく、どちらかというと上級者向けで専門的な内容が多いと感じています。
Apacheの方がNginx に比べて10年ほど先に公開しているため、やはり情報がより整っているのが要因と考えられます。

Nginxの設定方法

Nginxの設定方法

ここからは各種コマンドを使って、Nginxを初期設定してから実際に動かしていきましょう。
検証用に以下のスペックのVPSを利用しています。

企業名 カゴヤ・ジャパン
プラン名 KAGOYA CLOUD VPS(KVM)
CPU 2コア
メモリー 2GB
ストレージ SSD 30GB
OSテンプレート Ubuntu16.04(64bit)
料金 日額 35円/月額上限 979円(税込)

(注)コマンド例はLinux OSがUbuntu16.04の場合で表記しています。他のディストリビューションまたはバージョンの場合には、異なる場合があります。

Nginxのインストールと初期設定の仕方

以下のコマンドだけで、Nginx本体と関連するソフトウェアがすべてインストールされます。
【コマンド】

次に設定ファイルを開いて「server_name」を追記します。
【コマンド】

【コマンド】

(注)xxx.yyyにはWebサイトのドメイン名を追記します。

続いてNginxを起動します。

【コマンド】

基本的には、以上の操作でNginxは動きます。あとはセキュリティに関連する設定など、必要に応じて実施します。具体的にはファイアウォールや、ドメインを利用している場合はネームサーバーの設定などもあります。

ブラウザでドメイン名またはVPSのIPアドレスでアクセスすると、以下の画面が出たらNginxは稼働し、Webサイトはインターネット上に公開されている状態になります。

【設定例①】 SSLを利用するための設定方法

最近急速に普及している無料SSL「Let’s Encrypt」を導入してみましょう。「Certbot」というソフトウェアをインストールした後に、簡単なコマンドで実装可能です。

(注)あらかじめネームサーバーをVPSに向くよう変更しておきます。こちらの事前準備をしていないと、インストールの途中でエラーになり設定を完了できません。

【コマンド】

続いてSSL証明書を取得し、Nginxに組み込みます。以下の「-d ccc.ddd(ドメイン名)」の部分を実際のドメインに書き換えます。

【コマンド】

複数のドメインを同時に設定する場合は、「-d」とドメイン名の部分を繰り返して指定すれば可能です。

【コマンド】

これでSSLを無料で使えるようになります。
「Let’s Encrypt」について、サーバー研究室では別の記事にまとめています。この記事はCentOS7 (64bit)とNginxの組み合わせた解説ですが、基本的にはUbuntu16.04(64bit)と同様です。

【無料SSL入門】「Let’s Encrypt」とは?設定で挫折しない!使い方解説

【設定例②】 複数のドメインで利用するための設定方法

1つのWebサーバーには1つのドメインしか設定できない訳ではなく、複数設定が可能です。Nginxの場合は、だいたい以下の流れになります。

(1)設定ファイルをドメイン毎に作成(もとからある設定ファイルをコピー)
(2)(1)で作成した設定ファイルにドメインを記述
(3)(1)で作成した設定ファイルへリンクを張る
(4)Nginxの再起動

こちらの設定方法は、一般的にはバーチャルホストの設定と呼ばれています。以下がコマンドになります。

(1)設定ファイルをドメイン毎に作成(もとからある設定ファイルをコピー)

【コマンド】

(2)(1)で作成した設定ファイルにドメイン名を記述

設定ファイルを開いてから、「server {」から始まるブロック内にある「server_name」を指定します。
【コマンド】

【コマンド】

(3)(1)で作成した設定ファイルへリンクを張る

作成した設定ファイルが読み込まれるように、リンクして有効にします。
【コマンド】

(4)Nginxの再起動

【コマンド】

【補足】
「hash bucket memory」のエラーが発生した場合は、以下を実施します。

【コマンド】

23行目あたりの行頭「#」を削除し、以下のようにしてから保存します。
【コマンド】

(注)上記の「64」の数字は、サーバー環境によって変動するとの情報があります。

Nginxが使えるサーバー

Nginxが使えるサーバー
レンタルサーバー各社が提供しているプランでは、多くの場合Apacheが採用されています。そのためNginxを利用したい場合は、利用者が独自に導入する方法を選択していきましょう。

筆者のおすすめプラン

カゴヤ・ジャパンでは、利用者がWebサーバーを自由にインストールして運用できる以下のようなプランを提供しています。

(1)VPS <KAGOYA CLOUD>

今回の検証で利用しました。初期費用無料で、日割で料金が課金されるので一時的な使用にも向いていると思います。詳しくは以下のページをご覧ください。

(2)KAGOYA FLEX クラウドサーバー

他の利用者と共有ではなく専用のサーバー上で、より規模の大きい事業用途に適しています。

Nginx + WordPressに特化したおすすめプラン

契約してすぐにWordPressが利用できるプランが、最近増えています。このWordPressを快適に動作させるためには、Webサーバーにも高い処理能力が求められています。

そこでNginxの利用に結び付きますが、現状ではApacheが多く利用されています。その理由の一つに、WordPress特有の事情(.htaccessファイルなど)で、Apacheが設定しやすい事例があります。

カゴヤ・ジャパンではこれらの悩みを解消した、以下のようなプランを採用しています。

WordPress専用サーバー

あらかじめ適切に設定されたNginxにより、WordPressは高速に動きます。その実現には、プライム・ストラテジーが開発・提供する「KUSANAGI」という優れた仮想マシンイメージが使われています。サーバー研究室では、以下の記事で詳しく解説しています。
「KUSANAGI」の仕組みとは?WordPressを簡単スマートに高速化できる仮想マシン徹底解剖!

まとめ

ここまでいかがでしたか。これから設定してみようという方に向けて、Nginxの概要やApacheとの違いをまとめました。また基本的な方法の一例をご説明しました。WordPressを運用されている方向けには、より快適に使いこなすためのプランもご紹介しています。
Webサーバーは、Webサイト公開時に動いている最も重要なサーバーです。ぜひ、その一つであるNginxについて理解を深めていただきたいと思います。

高速でセキュアな環境で運用できるWordpressユーザー向けに特化したWordPress専用サーバー

人気記事ランキングトップ10

カテゴリ一覧

新着記事Pick Up!