ウェブサイト検索

Debian 10 にサーバー ブロック (仮想ホスト) を使用して Nginx をインストールする


Nginx は、リバース プロキシ、負荷分散、キャッシュなどの機能を組み合わせた、非常に人気のある高性能 Web サーバーです。構成に応じて、HTTP/HTTPS サーバーのロード バランサーだけでなく、リバース プロキシとしても機能できます。

Nginx Web サーバーは、数千の同時接続を処理する驚異的な能力を備えており、これにより最速の Web サーバーとなり、世界中で最もビジーなサイトの半分以上に電力を供給しています。ほんの数例を挙げると、NetflixDuckDuckGoDropBoxなどがあります。

こちらもお読みください: Debian 10 で仮想ホストを使用して Apache をインストールする方法

このチュートリアルでは、Debian 10 サーバー上で複数のドメインをホストするために仮想ホストを使用して Nginx をインストールする方法の手順を説明します。

前提条件

始める前に、次の要件が満たされていることを確認してください。

  1. Debian 10 のインスタンス。
  2. サーバーを指す完全修飾ドメイン名 (FQDN)。
  3. このガイドでは、IP アドレス 192.168.0.104 を持つ Debian 10 システムを指すドメイン linux-console.net を使用します。
  4. 良好なインターネット接続。

ステップ 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 HTTPUFW ファイアウォール 経由で許可されていることが明確にわかります。

ステップ 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 をインストールし、追加のドメインをサポートするようにさらに構成する方法を学びました。このガイドが有益であると感じていただければ幸いです。フィードバックをお待ちしております。