ウェブサイト検索

Ubuntu 20.04 に Nginx Web サーバーをインストールする方法


Nginx は、実稼働環境で大きな市場シェアを誇るオープンソースの高性能 Web サーバーです。これは軽量で堅牢な Web サーバーであり、主にトラフィックの多い Web サイトのホスティングに使用されます。

関連記事: Ubuntu 20.04 に Apache Web サーバーをインストールする方法

このガイドでは、Ubuntu 20.04 LTS 上で Nginx Web サーバーをインストールし、Nginx サーバー ブロック (仮想ホスト) を構成する方法を学習します。

前提条件

開始するには、SSH アクセスが可能な Ubuntu 20.04 LTS のインスタンスと、root 権限を持つ Sudo ユーザーがあることを確認してください。さらに、Nginx パッケージをインストールするには、安定したインターネット接続が推奨されます。

Ubuntu 20.04 への Nginx のインストール

1. Nginx をインストールする前に、サーバーのパッケージ リストを更新します。

sudo apt update

2. 次に、次のコマンドを実行して Nginx をインストールします。

sudo apt install nginx

続行するよう求められたら、キーボードの 'Y' を押して ENTER を押します。インストールはわずか数秒で完了します。

3. Nginx が正常にインストールされたら、次のコマンドを実行して起動して確認できます。

sudo systemctl start nginx
sudo systemctl status nginx

上記の出力は、Nginx が実行中であることを明確に示しています。

4. Nginx のバージョンを確認するには、次のコマンドを実行します。

sudo dpkg -l nginx

出力は、この記事の執筆時点での最新バージョンであるNginx 1.17.10 を実行していることを示しています。

UFW ファイアウォールで Nginx ポートを開く

これで Nginx がインストールされ、期待どおりに実行されました。Web ブラウザ経由で Nginx にアクセスするには、いくつかの調整が必要です。 UFW ファイアウォールを実行している場合は、Nginx アプリケーション プロファイルを許可する必要があります。

ufw ファイアウォールに関連付けられている 3 つの Nginx プロファイルがあります。

  1. Nginx フル – これにより、ポート 80443 の両方が開きます (SSL/TLS 暗号化用)。
  2. Nginx HTTP – これはポート 80 のみを開きます (暗号化されていない Web トラフィック用)。
  3. Nginx HTTPS – ポート 443 のみを開きます (SSL/TLS 暗号化用)。

5. まず、Ubuntu 20.04 でファイアウォールを有効にします。


sudo ufw enable

6. 現時点では、暗号化されたサーバー上ではないため、ポート 80 でのトラフィックを許可する Nginx HTTP プロファイルのみを許可します。 。

sudo ufw allow 'Nginx HTTP'

7. 次に、変更を維持するためにファイアウォールをリロードします。

sudo ufw reload

8. 次に、ファイアウォールのステータスをチェックして、許可されているプロファイルを確認します。

sudo ufw status

Ubuntu 20.04 での Nginx のテスト

Nginx は、Web サーバーと同様にブラウザ上で実行されます。期待どおりに実行されているかどうかをテストする最も確実な方法は、ブラウザ経由でリクエストを送信することです。

9. そこで、ブラウザにアクセスして、サーバーの IP アドレスまたはドメイン名を参照します。サーバーの IP を確認するには、ifconfig コマンドを実行します。

ifconfig

10. クラウド サーバーを使用している場合は、以下のcurl コマンドを実行してサーバーのパブリック IP を取得します。

curl ifconfig.me

11. ブラウザの URL フィールドにサーバーの IP アドレスまたはドメイン名を入力し、ENTER を押します。

http://server-IP or domain-name

図に示すように、デフォルトのNginx ウェルカム ページが表示されるはずです。

Ubuntu 20.04 で Nginx プロセスを管理する

12. Nginx Web サーバーを停止するには、次のコマンドを実行します。

sudo systemctl stop nginx

13. Web サーバーを再度起動するには、次のコマンドを実行します。

sudo systemctl start nginx

14. 起動時または再起動時に Nginx を自動的に起動するには、次の手順を実行します。

sudo systemctl enable nginx

15. 特に構成ファイルに変更を加えた後に Web サーバーを再起動する場合は、次のコマンドを実行します。

sudo systemctl restart nginx

16. また、図に示すように、リロードして接続のドロップを回避することもできます。

sudo systemctl reload nginx

Ubuntu 20.04 での Nginx サーバー ブロックの構成

サーバー上で複数のサイトをホストする予定がある場合は、Nginx サーバー ブロックを設定することを強くお勧めします。サーバー ブロックは、Apache の仮想ホストに相当します。

デフォルトでは、Nginx には、/var/www/html パスで Web コンテンツを提供するように設定されたデフォルトのサーバー ブロックが付属しています。

ドメインのコンテンツを提供するために、別の Nginx ブロックを作成します。このガイドでは、ドメイン crazytechgeek.info を使用します。
この場合、これを独自のドメイン名に置き換えてください。

17. サーバー ブロック ファイルを作成するには、まず、図に示すようにドメインのディレクトリを作成します。

sudo mkdir -p /var/www/crazytechgeek.info/html

18. 次に、$USER 変数を使用して、新しいディレクトリに所有権を割り当てます。

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

19. それに応じてディレクトリ アクセス許可も割り当てて、所有者にすべてのアクセス許可 (読み取り、書き込み、実行) を許可し、他のパーティには読み取りと実行のアクセス許可のみを付与するようにしてください。

sudo chmod -R 755 /var/www/crazytechgeek.info

20. ドメイン ディレクトリ内に、ドメインの Web コンテンツを含むファイル index.html を作成します。

sudo vim /var/www/crazytechgeek.info/html/index.html

以下の内容をサンプル テスト ファイルに貼り付けます。

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

変更を保存してファイルを終了します。

21. Nginx Web サーバーが追加したコンテンツを提供するには、適切なディレクティブを使用してサーバー ブロックを作成する必要があります。この場合、次の場所に新しいサーバー ブロックを作成しました。

sudo vim /etc/nginx/sites-available/crazytechgeek.info

表示されている構成を貼り付けます。

server {
        listen 80;
        listen [::]:80;

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info  www.crazytechgeek.info;

        location / {
                try_files $uri $uri/ =404;
        }
}

保存して終了。

22. ここで、Nginx サーバーが起動時に読み取る sites-enabled ディレクトリにサーバー ブロック ファイルをリンクして、サーバー ブロック ファイルを有効にします。

sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

23. 変更を有効にするには、Nginx Web サーバーを再起動します。

sudo systemctl restart nginx

24. すべての設定が正しいことを確認するために、次のコマンドを実行します。

nginx -t

すべての構成が適切であれば、以下に示す出力が得られるはずです。

25. これで、Nginx Web サーバーがドメインのコンテンツを提供するようになります。もう一度、ブラウザにアクセスしてサーバーのドメインを参照します。

http://domain-name

ドメインのディレクトリ内のカスタム コンテンツは次のように提供されます。

重要な Nginx 構成ファイル

最後に、Nginx に関連する重要な設定ファイルのいくつかを確認することが重要です。

Nginx 構成ファイル

  • /etc/nginx/nginx.conf: これはメインの設定ファイルです。サーバーの要件に合わせて設定を変更できます。
  • /etc/nginx/sites-available: これは、サーバー ブロック構成を保存するディレクトリです。 Nginx は、サーバー ブロックがサイト対応ディレクトリにリンクされている場合にのみ使用します。
  • /etc/nginx/sites-enabled: このディレクトリには、すでに有効になっているサイトごとの Nginx サーバー ブロックが含まれています。

Nginx ログ ファイル

Nginx Web サーバーのトラブルシューティングに使用できる主なログ ファイルは 2 つあります。

  • /var/log/nginx/access.log: これは、Web サーバーに対して行われたすべてのリクエストを記録します。
  • /var/log/nginx/error.log: これはエラー ログ ファイルで、Nginx で発生したすべてのエラーが記録されます。
結論

このチュートリアルは終わりに達しました。 Ubuntu 20.04Nginx をインストールする方法と、ドメインのコンテンツを提供するために Nginx サーバー ブロックを設定する方法を説明しました。フィードバックは大歓迎です。