Nginxは「enginex」と発音します。これは、インターネット上で最大のサイトのいくつかに電力を供給する、無料のオープンソースの高性能HTTPおよびリバースプロキシサーバーです。
Apacheと比較して、Nginxは非常に多くの同時接続を処理でき、接続あたりのメモリフットプリントが小さくなります。
このチュートリアルでは、Ubuntu16.04システムにNginxをインストールして管理する方法について説明します。
前提条件#
チュートリアルを開始する前に、sudo権限を持つユーザーとしてログインしていること、およびポート80または443でApacheやその他のサービスを実行していないことを確認してください。
Nginxをインストールする#
Nginxパッケージは、Ubuntuのデフォルトのソフトウェアリポジトリで利用できます。インストールは非常に簡単で、次のコマンドを実行するだけです。
sudo apt update
sudo apt install nginx
インストールが完了したら、次のように入力してNginxサービスのステータスを確認します。
sudo systemctl status nginx
出力には、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-01-05 15:44:04 UTC; 1min 59s ago
Main PID: 1291 (nginx)
CGroup: /system.slice/nginx.service
├─1291 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
└─1293 nginx: worker process
Nginxのバージョンタイプを確認するには:
sudo nginx -v
nginx version: nginx/1.10.3 (Ubuntu)
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 PPAリポジトリからNginxをインストールします#
UbuntuリポジトリのNginxパッケージは古くなっていることがよくあります。最新のNginxバージョンをインストールするには、公式のNginxPPAリポジトリを使用してください。
以下の手順に従って、Ubuntu16.04に最新バージョンのNginxをインストールします。
-
まず、
software-properties-common
をインストールします パッケージ:sudo apt install software-properties-common
-
次のコマンドを使用して、NginxPPAリポジトリを追加します。
sudo add-apt-repository ppa:nginx/stable
-
パッケージリストを更新し、Nginxをインストールします:
sudo apt update
sudo apt install nginx
-
インストールが完了したら、次のコマンドでNginxのバージョンを確認します。
sudo nginx -v
出力は次のようになります:
nginx version: nginx/1.12.2
systemctlを使用してNginxサービスを管理する#
Nginxサービスは、他のsystemdユニットと同じ方法で管理できます。
-
Nginxサービスを停止するには、次を実行します:
sudo systemctl stop nginx
-
Nginxサービスを開始するには、次のように入力します:
sudo systemctl start nginx
-
Nginxサービスを再起動します:
sudo systemctl restart nginx
-
構成を変更した後、Nginxサービスをリロードします:
sudo systemctl reload nginx
-
起動時に開始するNginxサービスを無効にします:
sudo systemctl disable nginx
-
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>
-