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

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

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

前提条件

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

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

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

$ sudo apt update

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

$ sudo apt install nginx
Ubuntu 20.04にNginxをインストールする
Ubuntu 20.04にNginxをインストールする

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

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

$ sudo systemctl start nginx
$ sudo systemctl status nginx
Ubuntu 20.04でNginxを確認する
Ubuntu 20.04でNginxを確認する

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

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

$ sudo dpkg -l nginx
Ubuntu 20.04でNginxのバージョンを確認する
Ubuntu 20.04でNginxのバージョンを確認する

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

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

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

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

  1. Nginx Full –これにより、ポート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ポートを開く
Ubuntu 20.04でNginxポートを開く

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ページを確認してください
Ubuntu 20.04の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 Serverブロックを設定することを強くお勧めします。サーバーブロックは、 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ウェブサーバーで追加したコンテンツを提供するには、適切なディレクティブを使用してサーバーブロックを作成する必要があります。この場合、次の場所に新しいサーバーブロックを作成しました。

$ 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.変更を有効にするには、 Nginxウェブサーバーを再起動します。

$ sudo systemctl restart nginx

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

$ nginx -t

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

Ubuntu 20.04のNginx設定を確認する
Ubuntu 20.04のNginx設定を確認する

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

http://domain-name

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

Ubuntu 20.04でNginxサーバーブロックを確認する
Ubuntu 20.04でNginxサーバーブロックを確認する

重要なNginx構成ファイル

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

Nginx構成ファイル

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

Nginxログファイル

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

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

結論

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

Source