Ubuntu 16.04にNginxをインストールする方法

前書き

Nginxは、世界で最も人気のあるWebサーバーの1つであり、インターネット上で最大かつ最もトラフィックの多いサイトのホストを担当しています。 ほとんどの場合、Apacheよりもリソースにやさしく、Webサーバーまたはリバースプロキシとして使用できます。

このガイドでは、Ubuntu 16.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サーバーを確認する

インストールプロセスの最後に、Ubuntu 16.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:  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アドレスを使用してアクセスできます。

サーバーにドメイン名が設定されていない場合は、https://digitalocean.com/community/articles/how-to-set-up-a-host-name-with-digitalocean [設定方法ここで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://

デフォルトのNginxランディングページが表示されます。これは次のようになります。

image:https://assets.digitalocean.com/articles/nginx_1604/default_page.png [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 +:Webサーバーへのすべてのリクエストは、Nginxが別の方法で設定されていない限り、このログファイルに記録されます。

  • + / var / log / nginx / error.log +:Nginxエラーはすべてこのログに記録されます。

結論

Webサーバーがインストールされたので、提供するコンテンツの種類と、より豊かなエクスペリエンスを作成するために使用するテクノロジに関する多くのオプションがあります。

Nginxサーバーブロックの使用方法をご覧ください。 より完全なアプリケーションスタックを構築する場合は、https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stackのこの記事をご覧ください。 -in-ubuntu-16-04 [Ubuntu 16.04でLEMPスタックを構成する方法]。

Related