Ubuntu20.04にNginxWebサーバーをインストールする方法


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

関連記事:Ubuntu20.04にApacheWebサーバーをインストールする方法

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

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

Ubuntu20.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

出力は、この記事を書き留めた時点で最新バージョンであるNginx1.17.10を実行していることを示しています。

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

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

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

  1. Nginx Full – This opens both port 80 & 443 (For SSL / TLS encryption).
  2. Nginx HTTP – This open only port 80 ( For unencrypted web traffic).
  3. Nginx HTTPS – Opens only port 443 (For SSL / TLS encryption).

5. Ubuntu20.04でファイアウォールを有効にすることから始めます。

$ sudo ufw enable

6.今のところ、暗号化されたサーバーを使用していないため、ポート80でのトラフィックを許可するNginxHTTPプロファイルのみを許可します。

$ sudo ufw allow 'Nginx HTTP'

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

$ sudo ufw reload

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

$ sudo ufw status

Ubuntu20.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ウェルカムページが表示されます。

Ubuntu20.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

Ubuntu20.04でのNginxサーバーブロックの構成

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

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

あなたの場合、これをあなた自身のドメイン名に置き換えることを確認してください。

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

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

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

$ 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ウェブサーバーで追加したコンテンツを提供するには、適切なディレクティブを使用してサーバーブロックを作成する必要があります。この場合、次の場所に新しいサーバーブロックを作成しました。

$ 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サーバーが起動時に読み取るサイト対応ディレクトリにサーバーブロックファイルをリンクして、サーバーブロックファイルを有効にします。

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

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

$ sudo systemctl restart nginx

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

$ nginx -t

すべての構成が正常である場合、以下に示す出力が得られるはずです。

25.これで、NginxWebサーバーがドメインのコンテンツを提供するはずです。もう一度、ブラウザに移動して、サーバーのドメインを参照します。

http://domain-name

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

重要なNginx構成ファイル

まとめる前に、Nginxに関連するいくつかの重要な構成ファイルを調べることが重要です。

  • /etc/nginx/nginx.conf: This is the main configuration file. You can modify the settings to meet your server’s requirements.
  • /etc/nginx/sites-available: This is the directory that stores the server block configuration. Nginx only uses the server blocks if they are linked to the sites-enabled directory.
  • /etc/nginx/sites-enabled: The directory contains per-site Nginx server blocks that are already enabled.

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

  • /var/log/nginx/access.log: This logs all the requests made to the webserver.
  • /var/log/nginx/error.log: This is the error log file and it records all the errors that Nginx encounters.

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