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


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

Nginx Webサーバーは、何千もの同時接続にサービスを提供するという驚異的な機能を備えており、これにより、世界で最も忙しいサイトの半分以上に電力を供給する最速のWebサーバーになります。これらには、ほんの数例を挙げると、Netflix、DuckDuckGo、DropBoxが含まれます。

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

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

  1. An instance of Debian 10.
  2. A Fully Qualified Domain Name (FQDN) pointing to the server.
  3. In this guide, we use the domain tecmint.com pointing to a Debian 10 system with an IP address 192.168.0.104.
  4. A good internet connection.

ステップ1:Debian10パッケージリポジトリを更新する

何よりもまず、ローカルパッケージリポジトリを最新バージョンに更新する必要があります。これを実現するには、sudo権限を持つ通常のユーザーとしてログインし、以下のコマンドを実行します。

$ sudo apt update -y

ステップ2:Debian10にNginxをインストールする

NginxはDebianのリポジトリに存在するため、Debianに付属のaptパッケージマネージャーを使用して、快適にインストールできます。

$ sudo apt install nginx -y

ステップ3:NginxWebサーバーのステータスを確認する

エラーが発生しなかった場合は、NginxWebサーバーが正常にインストールされています。さらに構成を行う前に、Webサーバーのステータスを確認することをお勧めします。

Nginxのステータスを確認するには、次のコマンドを実行します。

$ systemctl status nginx

ウェブサーバーが稼働している場合は、以下の通知が届きます。

Nginxウェブサーバーを再起動する場合は、コマンドを実行します。

$ systemctl restart nginx

Nginxを停止するには、コマンドを発行します。

$ systemctl stop nginx

Webサーバーを起動するには、を実行します。

$ systemctl start nginx

起動時に起動するようにNginxウェブサーバーを構成するには。

$ systemctl enable nginx

ステップ4:Nginxポートを開くようにファイアウォールを構成する

Nginxが正常にインストールされて実行されたら、特に外部ユーザーにサービスへのWebアクセスを許可する必要があります。 UFWファイアウォールを有効にしている場合は、ファイアウォールを介したHTTPアクセスを許可する必要があります。

これを実現するには、コマンドを実行します。

$ sudo ufw allow 'Nginx HTTP'

次に、ファイアウォールをリロードして変更を有効にします。

$ sudo ufw reload

これで、を実行してHTTPがファイアウォールの通過を許可されていることを確認できます。

$ sudo ufw status

上記のスニペットから、NginxHTTPがUFWファイアウォールの通過を許可されていることがはっきりとわかります。

ステップ5:NginxWebサーバーへのアクセス

これまで、Nginxを稼働させるための基本的な構成を行いました。 Webブラウザを介してWebサーバーにアクセスするには、図のようにサーバーのIPアドレスを参照します。

http://server-IP-address

これは、Nginxが稼働していることの確認です。

ステップ6:Debian10でのNginxサーバーブロックの構成

これはオプションの手順であり、Nginxウェブサーバーで複数のドメインをホストする場合に役立ちます。これを機能させるには、Debianサーバーを指すドメイン名が必要です。

このセクションでは、 A レコードがサーバーのIP192.168.0.104を指すドメイン名 tecmint.com を使用します。

ドメイン名をサーバーのIPアドレスにポイントすると、ドメイン名はすぐに変更され、図のようにWebサーバーをポイントします。

サーバーブロックを作成しましょう。

まず、図のようにドメインのディレクトリを作成しましょう。

$ sudo mkdir -p /var/www/html/tecmint.com

次に、図のように必要なファイル所有権を割り当てます。

$ sudo chown -R $USER:$USER /var/www/html/tecmint.com

次に、図のように、グループユーザーとパブリックユーザーに読み取りと実行のアクセス許可を割り当てます。

$ sudo chmod -R 755 /var/www/html/tecmint.com

次に、vimテキストエディタを使用して、簡単な index.html サンプルWebページを作成しましょう。

$ sudo vim /var/www/html/tecmint.com/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/tecmint.com

次のコンテンツをコピーしてサーバーブロックファイルに貼り付けます。

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/tecmint.com;
        index index.html index.htm index.nginx-debian.html;

        server_name tecmint.com www.tecmint.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

必ずドメイン名tecmint.comを独自のドメイン名に更新してください。

サーバーブロックファイルをアクティブ化または有効化するには、図のようにシンボリックリンクを作成します。

$ sudo ln -s /etc/nginx/sites-available/tecmint.com /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をインストールし、追加のドメインをサポートするようにさらに構成する方法を学習しました。このガイドがお役に立てば幸いです。あなたのフィードバックは高く評価されます。