序章
Nginxは、世界で最も人気のあるWebサーバーの1つであり、インターネット上で最大かつ最もトラフィックの多いサイトのいくつかをホストする責任があります。 ほとんどの場合、Apacheよりもリソースに優しく、Webサーバーまたはリバースプロキシとして使用できます。
このガイドでは、Ubuntu16.04サーバーにNginxをインストールする方法について説明します。
前提条件
このガイドを開始する前に、サーバーにsudo
権限が設定されたroot以外の通常のユーザーが必要です。 Ubuntu 16.04 の初期サーバーセットアップガイドに従って、通常のユーザーアカウントを構成する方法を学ぶことができます。
利用可能なアカウントがある場合は、root以外のユーザーとしてログインして開始します。
ステップ1:Nginxをインストールする
NginxはUbuntuのデフォルトのリポジトリで利用できるため、インストールはかなり簡単です。
これは、このセッションでのapt
パッケージングシステムとの最初のやり取りであるため、最新のパッケージリストにアクセスできるように、ローカルパッケージインデックスを更新します。 その後、nginx
をインストールできます。
- sudo apt-get update
- sudo apt-get install nginx
手順を受け入れた後、apt-get
はNginxと必要な依存関係をサーバーにインストールします。
ステップ2:ファイアウォールを調整する
Nginxをテストする前に、サービスへのアクセスを許可するようにファイアウォールソフトウェアを再構成する必要があります。 Nginxは、インストール時に、ファイアウォールであるufw
にサービスとして登録します。 これにより、Nginxアクセスを許可するのがかなり簡単になります。
次のように入力することで、ufw
が操作方法を知っているアプリケーション構成を一覧表示できます。
- sudo ufw app list
アプリケーションプロファイルのリストを取得する必要があります。
OutputAvailable applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
ご覧のとおり、Nginxで使用できるプロファイルは3つあります。
- Nginx Full :このプロファイルは、ポート80(通常の暗号化されていないWebトラフィック)とポート443(TLS / SSL暗号化トラフィック)の両方を開きます
- Nginx HTTP :このプロファイルはポート80(通常の暗号化されていないWebトラフィック)のみを開きます
- Nginx HTTPS :このプロファイルはポート443(TLS / SSL暗号化トラフィック)のみを開きます
構成したトラフィックを引き続き許可する最も制限の厳しいプロファイルを有効にすることをお勧めします。 サーバーにSSLをまだ構成していないため、このガイドでは、ポート80でのトラフィックのみを許可する必要があります。
これを有効にするには、次のように入力します。
- sudo ufw allow 'Nginx HTTP'
次のように入力して、変更を確認できます。
- sudo ufw status
表示された出力に許可されたHTTPトラフィックが表示されます。
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
ステップ3:Webサーバーを確認します
インストールプロセスの最後に、Ubuntu16.04はNginxを起動します。 Webサーバーはすでに稼働しているはずです。
systemd
initシステムで、次のように入力してサービスが実行されていることを確認できます。
- systemctl status nginx
Output● 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 Mon 2016-04-18 16:14:00 EDT; 4min 2s ago
Main PID: 12857 (nginx)
CGroup: /system.slice/nginx.service
├─12857 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
└─12858 nginx: worker process
上記のように、サービスは正常に開始されたようです。 ただし、これをテストする最良の方法は、実際にNginxにページをリクエストすることです。
デフォルトのNginxランディングページにアクセスして、ソフトウェアが正しく実行されていることを確認できます。 これには、サーバーのドメイン名またはIPアドレスを介してアクセスできます。
サーバーにドメイン名を設定していない場合は、ここでDigitalOceanを使用してドメインを設定する方法を学ぶことができます。
サーバーのドメイン名を設定したくない場合は、サーバーのパブリックIPアドレスを使用できます。 サーバーのIPアドレスがわからない場合は、コマンドラインからいくつかの異なる方法で取得できます。
サーバーのコマンドプロンプトで次のように入力してみてください。
- ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
数行戻ります。 Webブラウザーでそれぞれを試して、機能するかどうかを確認できます。
別の方法は、これを入力することです。これにより、インターネット上の別の場所から見たパブリックIPアドレスがわかります。
- sudo apt-get install curl
- curl -4 icanhazip.com
サーバーのIPアドレスまたはドメインがある場合は、それをブラウザのアドレスバーに入力します。
http://server_domain_or_IP
デフォルトのNginxランディングページが表示されます。これは次のようになります。
このページは、サーバーが正しく実行されていることを示すためにNginxに含まれているだけです。
ステップ4:Nginxプロセスを管理する
Webサーバーが稼働しているので、いくつかの基本的な管理コマンドを確認できます。
Webサーバーを停止するには、次のように入力します。
- sudo systemctl stop nginx
停止時にWebサーバーを起動するには、次のように入力します。
- sudo systemctl start nginx
サービスを停止してから再開するには、次のように入力します。
- sudo systemctl restart nginx
単に構成を変更するだけの場合、Nginxは接続を切断せずにリロードできることがよくあります。 これを行うには、次のコマンドを使用できます。
- sudo systemctl reload nginx
デフォルトでは、Nginxはサーバーの起動時に自動的に起動するように構成されています。 これが希望どおりでない場合は、次のように入力してこの動作を無効にできます。
- sudo systemctl disable nginx
起動時にサービスを再度有効にするには、次のように入力します。
- sudo systemctl enable nginx
ステップ5:重要なNginxファイルとディレクトリに精通する
サービス自体を管理する方法がわかったので、いくつかの重要なディレクトリとファイルに慣れるために数分かかる必要があります。
コンテンツ
/var/www/html
:実際のWebコンテンツは、デフォルトでは前に見たデフォルトのNginxページのみで構成されており、/var/www/html
ディレクトリから提供されます。 これは、Nginx構成ファイルを変更することで変更できます。
サーバー構成
/etc/nginx
:Nginx構成ディレクトリ。 すべてのNginx構成ファイルはここにあります。/etc/nginx/nginx.conf
:メインのNginx構成ファイル。 これを変更して、Nginxグローバル構成を変更できます。/etc/nginx/sites-available/
:サイトごとの「サーバーブロック」を保存できるディレクトリ。 Nginxは、sites-enabled
ディレクトリにリンクされていない限り、このディレクトリにある構成ファイルを使用しません(以下を参照)。 通常、すべてのサーバーブロック構成はこのディレクトリで行われ、他のディレクトリにリンクすることで有効になります。/etc/nginx/sites-enabled/
:有効なサイトごとの「サーバーブロック」が保存されているディレクトリ。 通常、これらはsites-available
ディレクトリにある構成ファイルにリンクすることによって作成されます。/etc/nginx/snippets
:このディレクトリには、Nginx構成の他の場所に含めることができる構成フラグメントが含まれています。 繰り返し可能な構成セグメントは、スニペットにリファクタリングするための適切な候補です。
サーバーログ
/var/log/nginx/access.log
:Nginxが別の方法で構成されていない限り、Webサーバーへのすべてのリクエストはこのログファイルに記録されます。/var/log/nginx/error.log
:Nginxエラーはすべてこのログに記録されます。
結論
Webサーバーがインストールされたので、提供するコンテンツのタイプと、より豊かなエクスペリエンスを作成するために使用するテクノロジーについて、多くのオプションがあります。
ここでNginxサーバーブロックの使用方法を学びます。 より完全なアプリケーションスタックを構築したい場合は、 Ubuntu16.04でLEMPスタックを構成する方法に関するこの記事を確認してください。