CentOS/RHEL 8 での Nginx サーバー ブロック (仮想ホスト) のセットアップ
Nginx サーバー ブロックはApache 仮想ホストに相当し、サーバー上で複数のドメインまたは Web サイトをホストできるようになります。
この記事では、CentOS 8 および RHEL 8 Linux 上で Nginx サーバー ブロック (仮想ホスト) をセットアップする方法を学習します。
前提条件:
- ドメインの
A
レコード。簡単に言えば、A
レコードは、ドメイン名がサーバー (この場合は Nginx Web サーバー) のパブリック IP を指す DNS エントリを指します。このガイド全体を通じて、ドメイン名crazytechgeek.info
を使用します。 - CentOS 8 または RHEL 8 インスタンスにインストールされた Nginx サーバーまたは LEMP スタック。
- Sudo 権限を持つログイン ユーザー。
始めましょう!
ステップ 1: Nginx ドキュメント ルート ディレクトリを作成する
すぐに、ホストするドメインのカスタム Web ルート ディレクトリを作成する必要があります。この例では、mkdir -p
オプションを使用して次のようにディレクトリを作成し、必要な親ディレクトリをすべて作成します。
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/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 を使用してドメインを暗号化し、保護層を追加し、ウェブサーバーとの間のトラフィックを保護することを検討することもできます。
sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx
ドメインが HTTPS で正しく構成されていることを確認するには、ブラウザで https://yourwebsite.com/
にアクセスし、URL バーで鍵のアイコンを探します。
結論
CentOS 8 と RHEL 8 上に Nginx サーバー ブロックを正常にセットアップしました。同じ手順を使用して、複数のドメインに対して同じことを繰り返すことができます。