Debian 10 にサーバー ブロック (仮想ホスト) を使用して Nginx をインストールする
Nginx は、リバース プロキシ、負荷分散、キャッシュなどの機能を組み合わせた、非常に人気のある高性能 Web サーバーです。構成に応じて、HTTP/HTTPS サーバーのロード バランサーだけでなく、リバース プロキシとしても機能できます。
Nginx Web サーバーは、数千の同時接続を処理する驚異的な能力を備えており、これにより最速の Web サーバーとなり、世界中で最もビジーなサイトの半分以上に電力を供給しています。ほんの数例を挙げると、Netflix、DuckDuckGo、DropBoxなどがあります。
こちらもお読みください: Debian 10 で仮想ホストを使用して Apache をインストールする方法
このチュートリアルでは、Debian 10 サーバー上で複数のドメインをホストするために仮想ホストを使用して Nginx をインストールする方法の手順を説明します。
前提条件
始める前に、次の要件が満たされていることを確認してください。
- Debian 10 のインスタンス。
- サーバーを指す完全修飾ドメイン名 (FQDN)。
- このガイドでは、IP アドレス 192.168.0.104 を持つ Debian 10 システムを指すドメイン
linux-console.net
を使用します。 - 良好なインターネット接続。
ステップ 1: Debian 10 パッケージ リポジトリを更新する
何よりもまず、ローカル パッケージ リポジトリを最新バージョンに更新する必要があります。これを実現するには、sudo 権限を持つ通常のユーザーとしてログインし、以下のコマンドを実行します。
sudo apt update -y
ステップ 2: Debian 10 に Nginx をインストールする
Nginx は Debian のリポジトリに存在するため、Debian に付属の apt パッケージ マネージャーを使用して簡単にインストールできます。
sudo apt install nginx -y
ステップ 3: Nginx Web サーバーのステータスを確認する
エラーが発生しなかった場合は、Nginx Web サーバーが正常にインストールされています。さらに構成を行う前に、Web サーバーのステータスを確認することが賢明です。
Nginx のステータスを確認するには、次を実行します。
systemctl status nginx
Web サーバーが稼働している場合は、以下の通知が届きます。
Nginx ウェブサーバーを再起動する場合は、コマンドを実行します。
systemctl restart nginx
Nginx を停止するには、次のコマンドを発行します。
systemctl stop nginx
Web サーバーを起動するには、実行します。
systemctl start nginx
ブート実行時に起動するように Nginx ウェブサーバーを構成するには。
systemctl enable nginx
こちらもお読みください: すべての Linux ユーザーが知っておくべき、最もよく使用される 10 の Nginx コマンド
ステップ 4: Nginx ポートを開くようにファイアウォールを構成する
Nginx が正常にインストールされ実行されたら、サービス (特に外部ユーザー) への Web アクセスを許可する必要があります。 UFW ファイアウォールを有効にしている場合は、ファイアウォールを介した HTTP アクセスを許可する必要があります。
これを実現するには、コマンドを実行します。
sudo ufw allow 'Nginx HTTP'
次に、ファイアウォールをリロードして変更を有効にします。
sudo ufw reload
これで、実行することで HTTP がファイアウォールを通過できることを確認できるようになりました。
sudo ufw status
上のスニペットから、Nginx HTTP がUFW ファイアウォール 経由で許可されていることが明確にわかります。
ステップ 5: Nginx Web サーバーへのアクセス
ここまででNginx を起動して実行するための基本的な構成を作成しました。 Web ブラウザ経由で Web サーバーにアクセスするには、図のようにサーバーの IP アドレスを参照します。
http://server-IP-address
これはNginx が稼働していることを確認します。
ステップ 6: Debian 10 での Nginx サーバー ブロックの構成
これはオプションの手順であり、Nginx ウェブサーバーで複数のドメインをホストする場合に便利です。これが機能するには、Debian サーバーを指すドメイン名が必要です。
このセクションでは、ドメイン名 linux-console.net
を使用します。この人の A
レコードは、サーバーの IP 192.168.0.104 を指しています。
ドメイン名がサーバーの IP アドレスを指すようにすると、ドメイン名はすぐに変更され、図のように Web サーバーを指すようになります。
次に、サーバーブロックを作成しましょう。
まず、図に示すように、ドメインのディレクトリを作成しましょう。
sudo mkdir -p /var/www/html/linux-console.net
次に、図に示すように、必要なファイルの所有権を割り当てます。
sudo chown -R $USER:$USER /var/www/html/linux-console.net
次に、図に示すように、グループ ユーザーとパブリック ユーザーに読み取り権限と実行権限を割り当てます。
sudo chmod -R 755 /var/www/html/linux-console.net
ここで、vim テキスト エディターを使用して、単純な index.html
サンプル Web ページを作成してみましょう。
sudo vim /var/www/html/linux-console.net/index.html
サンプル コンテンツをファイルに追加します。これがブラウザ上に表示されます。
<html>
<head>
<title>Welcome to Linux geeks</title>
</head>
<body>
<h1>Success! Welcome to your new server block on Tecmint Nginx Web Server !</h1>
</body>
</html>
保存してエディタを終了します
このコンテンツを提供するには、サーバー ブロックを作成する必要があります。
サーバーブロックを作成しましょう
vim /etc/nginx/sites-available/linux-console.net
次の内容をコピーしてサーバー ブロック ファイルに貼り付けます。
server {
listen 80;
listen [::]:80;
root /var/www/html/linux-console.net;
index index.html index.htm index.nginx-debian.html;
server_name linux-console.net linux-console.net;
location / {
try_files $uri $uri/ =404;
}
}
必ずドメイン名 linux-console.net を独自のドメイン名で更新してください。
サーバー ブロック ファイルをアクティブ化または有効にするには、次のようにシンボリック リンクを作成します。
sudo ln -s /etc/nginx/sites-available/linux-console.net /etc/nginx/sites-enabled/
Nginx のすべての設定が正しく構成されていることを確認するには、実行します。
sudo nginx -t
よかった、準備完了です!最後にNginxを再起動します。
sudo systemctl restart nginx
ブラウザにアクセスして更新すると、すべてがうまくいけば、ブラウザは次のようにサーバー ブロック Web ページを提供するはずです。
ステップ 7: Nginx ログ ファイルへのアクセス
サーバーに対して行われたリクエストに関するログ ファイルにアクセスするには、以下のファイルにアクセスします。
sudo vim /var/log/nginx/access.log
Nginx ウェブサーバーでエラーが発生した場合は、ファイルにエラーがないか調べてください。
sudo vim /var/log/nginx/error.log
結論
このガイドでは、Debian 10 インスタンスに Nginx をインストールし、追加のドメインをサポートするようにさらに構成する方法を学びました。このガイドが有益であると感じていただければ幸いです。フィードバックをお待ちしております。