Nginxの「enginex」と発音されるのは、インターネット上で最大のサイトのいくつかの負荷を処理する、無料のオープンソースの高性能HTTPおよびリバースプロキシサーバーです。
Nginxは、スタンドアロンWebサーバーとして、およびApacheやその他のWebサーバーのリバースプロキシとして使用できます。
Apacheと比較して、Nginxは非常に多くの同時接続を処理でき、接続あたりのメモリフットプリントが小さくなります。
このチュートリアルでは、Ubuntu18.04マシンにNginxをインストールするために必要な手順の概要を説明します。
前提条件#
チュートリアルを開始する前に、sudo権限を持つユーザーとしてログインしていること、およびポート80
でApacheまたはその他のWebサーバーが実行されていないことを確認してください。 または443
。
Nginxのインストール#
Nginxパッケージは、デフォルトのUbuntuリポジトリで利用できます。インストールは非常に簡単です。
まずパッケージリストを更新してから、Nginxをインストールします:
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 Sun 2018-04-29 06:43:26 UTC; 8s ago
Docs: man:nginx(8)
Process: 3091 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 3080 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 3095 (nginx)
Tasks: 2 (limit: 507)
CGroup: /system.slice/nginx.service
├─3095 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─3097 nginx: worker process
UFW
を使用していると仮定します ファイアウォールを管理するには、HTTP(80
)を開く必要があります )およびHTTPS(443
)ポート。これを行うには、両方のポートのルールを含む「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サービスは、他のsystemdサービスと同じ方法で管理できます。
Nginxサービスを停止するには、次を実行します:
sudo systemctl stop nginx
再開するには、次のように入力します:
sudo systemctl start nginx
Nginxサービスを再起動するには:
sudo systemctl restart nginx
構成を変更した後、Nginxサービスをリロードします:
sudo systemctl reload nginx
デフォルトでは、Nginxサービスは起動時に開始されます。 Nginxサービスを無効にして起動時に開始する場合:
sudo systemctl disable nginx
そして、再度有効にするには:
sudo systemctl enable 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>
-