Ubuntu 20.04 で Nginx サーバー ブロック (仮想ホスト) をセットアップする方法
場合によっては、Nginx Web サーバーで複数のドメインまたは Web サイトをホストする必要がある場合があります。これを実現するには、ドメインのすべての構成をカプセル化するようにサーバー ブロック (仮想ホスト) を構成する必要があります。 Nginx サーバー ブロックはApache 仮想ホスト ファイルと同義であり、同じ目的を果たします。
このトピックでは、Ubuntu 20.04 で Nginx サーバー ブロックをセットアップする方法を説明します。
前提条件:
- ドメイン名ホスティング プロバイダーで定義された
A
レコード。A
レコードは、ドメイン名がパブリック サーバーの IP アドレスを指す DNS レコードです。このガイドでは、説明のためにドメイン名crazytechgeek.info
を使用します。 - Ubuntu 20.04 LTS インスタンスにインストールされた Nginx サーバーまたは LEMP スタック。
- Sudo 権限を持つログイン ユーザー。
すべての要件が満たされたので、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
ディレクトリ内のコンテンツを提供しているかどうかを確認するには、Web ブラウザを開いてサーバーのドメイン名を参照します。
http://domain-name
図に示すように、サーバー ブロック内の HTML ファイルに含まれるコンテンツを取得する必要があります。
結論
このガイドでは、Ubuntu Linux 上で単一ドメインを使用してNginx サーバー ブロックをセットアップする方法を説明しました。異なるドメインに対して同じ手順を繰り返しても、同じ結果を得ることができます。このガイドが洞察力に富んでいることを願っています。