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


NginxサーバーブロックはApache仮想ホストに相当し、サーバー上で複数のドメインまたはWebサイトをホストできるようにします。

この記事では、CentOS8およびRHEL8 LinuxでNginxサーバーブロック(仮想ホスト)をセットアップする方法を学習します。

始めましょう!

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

すぐに、ホストするドメインのカスタムWebルートディレクトリを作成する必要があります。この場合、 mkdir -p オプションを使用して示されているようにディレクトリを作成し、必要なすべての親ディレクトリを作成します。

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

その後、 環境変数を使用してディレクトリのアクセス許可を割り当てます。その際、rootユーザーではなく通常のユーザーとしてログインしていることを確認してください。

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

次に、次に示すように、適切なディレクトリ権限を再帰的に割り当てます。

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

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

次に、カスタムWebルートディレクトリ内に index.html ファイルを作成します。このファイルは、リクエストが行われるとドメインによって提供されます。

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

ファイル内に、次のサンプルコンテンツを貼り付けます。

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
  <h1>Awesome! Your Nginx server block is working!</h1>
    </body>
</html>

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

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

Nginx Webサーバーが手順2で作成した index.html ファイルのコンテンツを提供するには、適切なディレクティブを使用してサーバーブロックファイルを作成する必要があります。したがって、次の場所に新しいサーバーブロックを作成します。

$ sudo vim /etc/nginx/conf.d/crazytechgeek.info.conf

次に、以下に表示される構成を貼り付けます。

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;

}

完了したら、変更を保存して構成ファイルを終了します。すべてのNginx構成が正常でエラーがないことを確認するには、次のコマンドを実行します。

$ sudo nginx -t

以下の出力は、準備ができていることを確認するためのものです。

最後に、Nginx Webサーバーを再起動し、期待どおりに実行されていることを確認します。

$ sudo systemctl restart nginx
$ sudo systemctl status Nginx

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

これですべての構成が完了しました。残っているのは、サーバーブロックが index.html ファイルで以前に定義されたWebルートディレクトリのコンテンツを提供しているかどうかを確認することだけです。

これを行うには、ブラウザを開いて、次のようにサーバーのドメインに移動します。

http://domain-name

観察されたように、私たちのコンテンツはサーバーブロックによって提供されており、すべてが順調に進んだことを明確に示しています。

ステップ5:NginxでホストされているドメインでHTTPSを有効にする

Lets Encrypt SSLを使用してドメインを暗号化して、保護レイヤーを追加し、Webサーバーとの間のトラフィックを保護することを検討してください。

$ sudo dnf install certbot python3-certbot-nginx
$ sudo certbot --nginx

ドメインがHTTPSで正しく構成されていることを確認するには、ブラウザで https://yourwebsite.com/ にアクセスし、URLバーで鍵のアイコンを探します。

CentOS8とRHEL8にNginxサーバーブロックを正常にセットアップしました。同じ手順を使用して、複数のドメインに対して同じことを繰り返すことができます。