NGINX vs Apache: WordPress に最適な Web サーバーは?
公開: 2023-02-12WordPress Web サイトを実行するには、Web サーバーでホストする必要があります。 これにより、Web ブラウザーがサイトのデータを要求できるようになります。 ただし、いくつかの Web サーバー オプションがあり、1 つを選択するのは困難な作業になる場合があります。
選択できる Web サーバーは多数ありますが、Apache と NGINX が最も一般的なオプションです。 しかし、どちらが最高の Web サーバーでしょうか?
これら 2 つの Web サーバーは、すべての Web トラフィックの 50% 以上を処理します。 多くの共通点がありますが、サイトに適したものを選択するために知っておくべき違いがあります。 この記事では、NGINX と Apache の違いについて説明します。 次に、両方のタイプのサーバーに WordPress をインストールする方法を見ていきます。 始めましょう!
パフォーマンスの比較: NGINX と Apache
前述したように、NGINX と Apache は最も有名な Web サーバー オプションです。 さまざまなワークロードを処理し、他のソフトウェアと連携して LAMP および LEMU スタックを形成できます。 ただし、これらの Web サーバーを正確に比較するには、それらの違いを理解する必要があります。
アパッチ
Apache は 2 つのサーバーのうち古い方で、1995 年に Robert McCool によって Apache Software Foundation によって最初にリリースおよび開発されました。 1996 年以来、Apache はトップの Web サーバーであり、約 38.7% の Web サイトで使用されています。 現在、Apache Foundation は引き続き Apache のバージョンをリリースしています。
Apache モジュールには、次のようなさまざまな利点があります。
- プレインストール オプション: Apache は、主要な Linux ディストリビューションにプレインストールされています。
- ユーザー コミュニティ: Apache には、互いに助け合う大規模なユーザー コミュニティがあります。
- 動的モジュール ローディング システム:このシステムは、サーバーの更新時にメイン パッケージに触れないようにします。
- .htaccessでの URL 書き換え: Apache 2 はmod_rewriteを使用してクリーンな書き換えを行います。
- モジュール設計: Apache は、モジュール設計により、より優れたカスタマイズと柔軟性を提供します。
- httpd.confファイルを使用したサーバー構成:メインのapache2.confファイルにアクセスする必要がないため、構成は簡単です。
- 「ゲートウェイ」サーバーとして機能する: Apache はリバース プロキシ サーバーとしても機能します。
Apache サーバーは、多くのカスタマイズ機能を備えた使いやすい Web サーバーです。 このソフトウェアは、Unix および Windows サーバーとも互換性があります。
NGINX
NGINX は、C10K 問題を解決するために、NGINX Inc. の創設者である Igor Sysoev によって 2004 年にリリースされました。 これは、10,000 以上の同時接続要求を処理するときに Web サーバーが直面する課題です。
これを解決するために、NGINX は非同期、ノンブロッキング、およびイベントベースのアーキテクチャとして開発されました。 これは、NGINX と Apache の主な違いの 1 つです。 これも約32.1%のWebサイトがNGINXを採用している理由の1つです。
NGINX が提供する他の多くの利点があります。
- 軽量設計: NGINX は最小限のハードウェアで実行でき、Apache よりも少ないメモリを使用します。
- 静的コンテンツの処理: NGINX は、正しく構成されている場合、より優れた静的コンテンツの処理を提供します。
- 高負荷応答性: トラフィックが多い場合でも、NGINX は高い応答性を維持します。
- ユーザーフレンドリーなデザイン: 学習曲線はより簡単で、NGINX は初心者に優しいです。
- モジュラー セットアップ: このサーバーの設計により、柔軟なビルドとさまざまなサードパーティ製モジュールが可能になります。
- リバース プロキシ: NGINX Plus は、ハードウェア ベースのソリューションと同様の機能を備えたソフトウェア ベースのリバース プロキシを低コストで提供します。
NGINX と NGINX Plus は、より重い負荷を処理する負荷分散機能を備えているため、トラフィックの多い Web サイトに適したオプションと見なされることがよくあります。 また、静的な Web コンテンツが多いサイトで最高のパフォーマンスを維持するのにも理想的です。
Apache と NGINX の違いは何ですか?
NGINX と Apache HTTP Server は似ていますが、両者には多くの違いがあります。 最大の違いは、これらの Web サーバーが複数のクライアント要求を処理する方法です。 Apache はフォークされたソリューションを使用しますが、NGINX はノンブロッキング イベント ループを使用します。
Apache は、リクエストの処理方法を決定するマルチプロセッシング モジュール (MPM) を提供します。 フォークされたアプローチにより、接続処理アーキテクチャの交換が容易になります。 このアプローチで使用されるモジュールは、Apache のコア機能への追加です。 各マルチプロセッシング モジュールは、サーバー リクエストを処理するために異なるプロセスを開始します。
その一例がmpm-workerです。これは、複数のスレッドを処理するプロセスを作成するモジュールです。 各スレッドは、サーバーへの単一の接続です。 このモジュールを追加すると、サーバーのスケーリングが可能になり、大量のトラフィックの管理が可能になります。
NGINX は異なり、同時リクエスト処理のためにワーカー プロセスのみを生成します。 これらのプロセスは、複数のリクエストを継続的にチェックして処理するノンブロッキング イベントです。 この継続的なチェックにより、ループが作成されます。 ループ内のすべてのイベントは非同期であり、接続が閉じるとループから削除されます。
最高のWordPress Webサーバーソフトウェアは何ですか?
Apache と NGINX はどちらも、WordPress ホスティングとうまく連携します。 ただし、パフォーマンスを向上させたい場合は、NGINX の方が適している可能性があります。 どちらのタイプのサーバーにも WordPress をインストールする方法を見てみましょう。
WordPress を Apache にインストールする方法
WordPress を Apache にインストールするには、LAMP (Linux、Apache、MySQL、および PHP) スタックをセットアップする必要があります。 これは通常、Ubuntu サーバーで行われます。
ステップ 1: サーバーに Sudo ユーザーを作成する
ユーザーを作成するには、root ユーザーとしてサーバーにログインします。 次に、以下のユーザー追加コマンドを使用して、新しいアカウントを作成します。
$ adduser username
サーバーは、パスワードの設定と確認を求めます。 次に、ユーザーの詳細を入力します。 次に、そのユーザーにsudoアクセスを提供できます。 このアクセスにより、ユーザーは、通常は root ユーザーによって実行されるコマンドを実行できます。
ユーザーをsudoグループに追加するには、次のコマンドを入力します。
$ usermod -aG sudo username
次に、残りのインストール プロセスのために sudo ユーザーとしてサーバーにログインします。
ステップ 2: Apache Web サーバーをインストールする
Apache をインストールするには、Ubuntu パッケージ マネージャーaptを使用する必要があります。 これは、Ubuntu サーバーのデフォルトです。 次のsudoコマンドを入力すると、パスワードを入力した後にインストールが開始されます。
$ sudo apt update $ sudo apt install apache2
インストールされるパッケージと、必要なディスク容量が表示されます。 Y を押してからEnter を押して、インストールを開始します。
ステップ 3: MySQL データベース サーバーをインストールする
次に、データベース管理システム MySQL をインストールする必要があります。 パッケージ マネージャーで次のコマンドを実行すると、インストールが開始されます。
$ sudo apt install mysql-server
パッケージと必要なディスク容量が再度表示されます。 インストールを開始するには、 Yを押して root パスワードを設定します。
ステップ 4: PHP をインストールする
PHP は、コードを動的コンテンツに処理する LAMP スタックの一部です。 インストールするには、次のコマンドを入力する必要があります。
$ sudo apt install php libapache2-mod-php php-mysql
その後、PHP は問題なくインストールされます。 スタックのインストールを完了するには、サーバーを再起動する必要があります。 これを行うには、次のコマンドを入力します。
$ sudo systemctl restart apache2
LAMP スタックがインストールされ、構成されました。
ステップ 5: 仮想ホストのセットアップ
仮想ホストは構成の詳細をカプセル化するため、推奨される手順です。 カプセル化により、サーバー上で複数の Web サイトをホストできます。
Apache サーバーはデフォルトで/var/www/htmlディレクトリを使用しますが、これは複数の Web サイトにとって扱いにくいものです。 仮想ホストを作成するには、新しい Web サイトのドメイン用に/var/wwwにディレクトリ構造を設定する必要があります。
次のコマンドを使用して、この構造を作成します。
sudo mkdir /var/www/new_domain
new_domain をWeb サイトのドメインに変更します。 次に、 nanoコマンドを使用して、サンプル コンテンツを含むindex.htmlファイルを作成します。
$ nano /var/www/new_domain/index.html
Apache がコンテンツを確実に提供できるようにするには、ホスト ファイルも作成する必要があります。 次のコマンドは、構成ファイルを作成します。
$ sudo nano /etc/apache2/sites-available/your_domain.conf
次に、次の構成ブロックを追加します。
<VirtualHost *:80> ServerAdmin [email protected] ServerName new_domain ServerAlias www.new_domain DocumentRoot /var/www/new_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
次のコマンドはファイルを有効にし、2 番目のコマンドはサーバーの既定のサイトを無効にします。
$ sudo a2ensite new_domain.conf $ sudo a2dissite 000-default.conf
仮想ホストが構成され、機能するようになりました。 この新しく作成されたディレクトリは、WordPress のインストールに使用する必要があります。
ステップ 6: WordPress をインストールする
LAMP スタックを構成したら、WordPress をインストールできます。 WordPress の最新バージョンをダウンロードし、次のコマンドでインストールします。
$ sudo apt update $ sudo apt install wordpress php libapache2-mod-php mysql-server php-mysql
次に、WordPress 用に Apache を構成し、MySQL データベースを作成します。 次に、WordPress Web ブラウザー インターフェイスを使用して、Web サイトの構成を完了します。 これには、サイト タイトルの作成とパスワードの設定が含まれます。
NGINX に WordPress をインストールする方法
NGINX に WordPress をインストールするには、NGINX ユニットがサポートするディストリビューションのいずれかを実行するサーバーが必要です。 Linux を使用している場合は、LEMU (Linux、NGINX、MySQL、および NGINX ユニット) スタックを作成します。
ステップ 1: MySQL をインストールする
開始する前に、 sudoアクセス権を持つサーバー ユーザーを作成します。 root ユーザーとしてサーバーにログインし、次のコマンドを使用して新しいアカウントを作成します。
$ adduser username
ユーザーの詳細を入力する前に、パスワードを入力して確認する必要があります。 次に、そのユーザーにsudoアクセスを提供できます。 このアクセスにより、ユーザーは、通常は root ユーザーによって実行されるコマンドを実行できます。
ユーザーをsudoグループに追加するには、次のコマンドを入力します。
$ usermod -aG sudo username
sudo ユーザーとしてサーバーにログインし、次のコマンドを使用して MySQL をインストールします。
$ sudo apt-get install mysql-server
新しいルート パスワードを入力します。 その後、MySQL 構成ツールを実行できます。 これは、インストール プロセスを順を追って説明する構成ウィザードです。
ステップ 2: MySQL データベースを作成する
MySQL の準備ができたら、新しいデータベースを作成できます。 また、管理権限を持つ新しいユーザーを作成する必要があります。 これを行うには、MySQL ルート アカウントにログインし、次のコマンドを入力します。
$ sudo mysql -u root -p mysql> CREATE DATABASE wordpress; mysql> CREATE USER [email protected] IDENTIFIED BY 'secure_password'; mysql> GRANT ALL PRIVILEGES ON wordpress.* TO [email protected]; mysql> FLUSH PRIVILEGES; mysql> Exit Bye
Flush Privileges コマンドは、行った変更を MySQL が確実に認識できるようにします。 好みに合わせてデフォルトのユーザー名とパスワードを変更する必要があります。
ステップ 3: WordPress をインストールする
WordPress をインストールする前に、次のコマンドを使用して一時ファイルの場所を作成する必要があります。
$ cd /var/www/ $ sudo wget http://wordpress.org/latest.tar.gz $ sudo tar xzvf latest.tar.gz
このコマンドは、WordPress のダウンロードと解凍も行います。
ステップ 4: WordPress を構成する
次に、WordPress 構成ファイルのコピーを作成し、次のコマンドを使用して名前を変更します。
$ cd /var/www/wordpress $ sudo cp wp-config-sample.php wp-config.php
ファイル内の SALT キーを更新して、セキュリティを向上させることができます。 nanoを使用するとwp-config.phpファイルが開き、SALT キーを検索できるようになります。
$ sudo nano wp-config.php
キーを新しく生成されたキーに置き換えてから、ファイルを保存して終了します。
ステップ 5: PHP をインストールする
NGINX ユニットを使用できますが、それでも PHP をインストールする必要があります。 これを行うには、次のコマンドを使用できます。
$ sudo apt-get install -y php7.0 php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt
これは、WordPress が NGINX Unit に含まれていないいくつかの拡張機能に依存しているため必要です。
ステップ 6: NGINX ユニットをインストールする
最後に、サーバーのオペレーティング システム用にコンパイル済みの NGINX ユニットをインストールする必要があります。 次のコマンドを使用して、PHP のモジュールをインストールします。
$ sudo apt-get install unit-php $ sudo service unit restart $ sudo curl -X PUT --data-binary @/usr/share/doc/unit-php/examples/unit.config --unix-socket /run/control.unit.sock http://localhost/config $ curl http://localhost:8300/
これらのコマンドは、NGINX Unit と PHP が正常に動作していることも確認します。
次に、NGINX オープン ソースをインストールして構成する必要があります。 メインライン ブランチからビルド済みパッケージをインストールできます。 これらには、最新の機能とパッチが含まれます。 この構成の後、WordPress を使用する準備が整います。
WPエンジンで学び続ける
Apache と NGINX は、最も一般的な Web サーバー ソフトウェア オプションです。 しかし、NGINX 対 Apache の戦いで、どちらがトップに立つのでしょうか? 多くの点で似ていますが、トラフィックの多い Web サイトでは NGINX サーバーの方が優れたパフォーマンスを提供します。 ただし、Apache には、より多くのドキュメントを備えたより大きなコミュニティがあります。
もちろん、優れたウェブサイトを開発するにはいくつかのことが必要です。 これらには、適切なツール、最高のリソース、一流の Web ホスティングが含まれます。
WordPress の最適化や HTTP 400 エラーの理解など、SEO および Web 関連のリソースについては、サイトを改善するためのリソース センターをご覧ください。