Ubuntu 20.04でNginxサーバーブロック(仮想ホスト)を設定する方法


場合によっては、NginxWebサーバーで複数のドメインまたはWebサイトをホストする必要があります。そのためには、ドメインのすべての構成をカプセル化するようにサーバーブロック(仮想ホスト)を構成する必要があります。 NginxサーバーブロックはApache仮想ホストファイルと同義であり、同じ目的を果たします。

このトピックでは、Ubuntu20.04でNginxサーバーブロックを設定する方法を示します。

すべての要件が満たされたら、UbuntuでNginxサーバーブロックを設定する方法を見ていきましょう。

ステップ1:Nginxドキュメントのルートディレクトリを作成する

開始するには、ドメインに関連するすべての設定を含む、ドメイン用の別のディレクトリを作成します。

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

次に、$ USER 環境変数を使用してディレクトリの所有権を割り当てます。これにより、ディレクトリの所有権が現在ログインしているユーザーに割り当てられます。 rootとしてではなく、通常のユーザーのアカウントを使用してログインしていることを確認してください。

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

次に、ディレクトリに適切なアクセス許可を割り当て、ログインしたユーザーにすべての権限(読み取り、書き込み、実行)を付与し、グループと他のユーザーに読み取りと実行のアクセス許可のみを付与します。

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

ディレクトリのアクセス許可と所有権を正しく構成したら、ドメインのサンプルWebページを作成する必要があります。

ステップ2:ドメインのサンプルページを作成する

このステップでは、テスト目的で index.html ファイルを作成します。このファイルは、ブラウザでドメインが呼び出されたときにWebブラウザに表示されるコンテンツを提供します。

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

次のHTMLコンテンツを貼り付けます。

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

構成ファイルを保存して終了します。

ステップ3:UbuntuでNginxサーバーブロックを作成する

Nginxサーバーブロックは、/etc/nginx/sites-available ディレクトリにあります。デフォルトのNginxサーバーブロックは/etc/nginx/sites-available/default で、/ var/www/html /index.nginx-debian.htmlにあるデフォルトのHTMLファイルを提供します。

この場合、前に作成した index.html ファイルのコンテンツを提供するサーバーブロックを作成する必要があります。

したがって、示されているサーバーブロックファイルを作成します。

$ 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;
        }

		
    access_log /var/log/nginx/crazytechgeek.info.access.log;
    error_log /var/log/nginx/crazytechgeek.info.error.log;

}

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

ステップ4:UbuntuでNginxサーバーブロックを有効にする

Nginxサーバーブロックを有効にするには、図のように/etc/nginx/sites-enabled/ディレクトリにシンボリックリンクする必要があります。

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

この時点で、ほぼ完了です。ただし、すべての構成が適切であることを確認することをお勧めします。これを行うには、次のコマンドを実行します。

$ sudo nginx -t

手順を正しく実行すると、次の出力が表示されます。

最後に、構成ファイルに加えられた変更を有効にするためにNginxを再起動します。

$ sudo systemctl restart Nginx

次に、次のコマンドを実行して、Nginxが実行されているかどうかを確認します。

$ sudo systemctl status Nginx

ステップ5:UbuntuでNginxサーバーブロックをテストする

サーバーブロックが期待どおりに機能し、 /var/www/crazytechgeek.info ディレクトリのコンテンツを提供しているかどうかを確認するには、ウェブブラウザを開いてサーバーのドメイン名を参照します。

http://domain-name

図のように、サーバーブロックのHTMLファイルに含まれるコンテンツを取得する必要があります。

このガイドでは、UbuntuLinuxで単一のドメインを使用してNginxサーバーブロックを設定する方法を示しました。異なるドメインに対して同じ手順を繰り返しても、同じ結果を得ることができます。ガイドが洞察に満ちていたことを願っています。