Nginxの「enginex」と発音されるのは、インターネット上で最大のサイトのいくつかの負荷を処理する、オープンソースの高性能HTTPおよびリバースプロキシサーバーです。スタンドアロンのウェブサーバー、ロードバランサー、コンテンツキャッシュ、HTTPサーバーと非HTTPサーバーのリバースプロキシとして使用できます。
Apacheと比較して、Nginxは非常に多くの同時接続を処理でき、接続あたりのメモリフットプリントが小さくなります。
このチュートリアルでは、Ubuntu20.04にNginxをインストールして管理する方法について説明します。
前提条件#
続行する前に、sudo権限を持つユーザーとしてログインしていること、およびポート80または443でApacheまたはその他のプロセスが実行されていないことを確認してください。
Nginxのインストール#
NginxはデフォルトのUbuntuリポジトリで利用できます。インストールするには、次のコマンドを実行します。
sudo apt update
sudo apt install nginx
インストールが完了すると、Nginxサービスが自動的に開始されます。次のコマンドを実行して確認できます:
sudo systemctl status nginx
出力は次のようになります:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-05-02 20:25:43 UTC; 13s ago
...
それでおしまい。 NginxがUbuntuマシンにインストールされています。 Nginxサービスは、他のsystemdユニットと同じ方法で管理できます。
Nginxをサーバーにインストールして実行したので、ファイアウォールがHTTP(80
)でのトラフィックを許可するように構成されていることを確認する必要があります。 )およびHTTPS(443
)ポート。 UFW
を使用していると仮定します 、両方のポートのルールを含む「NginxFull」プロファイルを有効にすることでこれを行うことができます:
sudo ufw allow 'Nginx Full'
ステータスタイプを確認するには:
sudo ufw status
出力は次のようになります。
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Nginx Full ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
新しいNginxのインストールをテストするには、http://YOUR_IP
を開きます。 選択したブラウザで、下の画像に示すように、デフォルトのNginxランディングページが表示されます。
Nginx構成ファイルの構造とベストプラクティス#
- すべてのNginx構成ファイルは
/etc/nginx
にあります ディレクトリ。 - メインのNginx構成ファイルは
/etc/nginx/nginx.conf
です。 。 - Nginx構成の保守を容易にするために、ドメインごとに個別の構成ファイルを作成することをお勧めします。サーバーブロックファイルは必要な数だけ持つことができます。
- Nginxサーバーブロックファイルは
/etc/nginx/sites-available
に保存されます ディレクトリ。このディレクトリにある構成ファイルは、/etc/nginx/sites-enabled
にリンクされていない限り、Nginxによって使用されません。 ディレクトリ。 - サーバーブロックをアクティブ化するには、
sites-available
の構成ファイルサイトからシンボリックリンク(ポインター)を作成する必要があります。sites-enabled
へのディレクトリ ディレクトリ。 - 標準の命名規則に従うことをお勧めします。たとえば、ドメイン名が
mydomain.com
の場合 次に、構成ファイルの名前を/etc/nginx/sites-available/mydomain.com.conf
にする必要があります。 -
/etc/nginx/snippets
ディレクトリには、サーバーブロックファイルに含めることができる構成スニペットが含まれています。繰り返し可能な構成セグメントを使用する場合は、それらのセグメントをスニペットにリファクタリングし、スニペットファイルをサーバーブロックに含めることができます。 - Nginxログファイル(
access.log
およびerror.log
)は/var/log/nginx
にあります ディレクトリ。別のaccess
を使用することをお勧めします およびerror
各サーバーブロックのログファイル。 - ドメインドキュメントのルートディレクトリは、任意の場所に設定できます。 webrootの最も一般的な場所は次のとおりです。
-
/home/<user_name>/<site_name>
-
/var/www/<site_name>
-
/var/www/html/<site_name>
-
/opt/<site_name>
-