GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04でNginxサーバーブロックを設定する方法

サーバーブロックは、特定のドメインの設定を定義するNginxディレクティブであり、単一のサーバーで複数のWebサイトを実行できるようにします。 Webサイトごとに、サイトドキュメントルート(Webサイトファイルを含むディレクトリ)を設定したり、個別のセキュリティポリシーを作成したり、さまざまなSSL証明書を使用したりすることができます。

この記事では、Ubuntu20.04でNginxサーバーブロックを設定する方法について説明します。

前提条件#

続行する前に、次の要件を満たしていることを確認してください。

  • パブリックサーバーのIPを指すドメイン名。
  • UbuntuシステムにインストールされているNginx。
  • rootまたはsudo権限を持つユーザーとしてログインしています。

一部の記事では、「サーバーブロック」という用語は「仮想ホスト」と呼ばれています。仮想ホストはApacheの用語です。

ディレクトリ構造の作成#

ドキュメントルートは、ドメイン名のWebサイトファイルが保存され、要求に応じて提供されるディレクトリです。ドキュメントルートは任意の場所に設定できます。この例では、次のディレクトリ構造を使用します。

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html

サーバーでホストされている各ドメインのドキュメントルートは、/var/www/<domain_name>/public_htmlに設定されます。 。

ドメインのルートディレクトリを作成することから始めます:

sudo mkdir -p /var/www/domain1.com/public_html

index.htmlも作成します ブラウザでドメインにアクセスしたときに表示されるドメインドキュメントのルートディレクトリ内のファイル:

/var/www/example.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

上記のコマンドはsudoユーザーとして実行されるため、新しく作成されたファイルとディレクトリはrootが所有します。アクセス許可の問題を回避するには、ドメインドキュメントのルートディレクトリとディレクトリ内のすべてのファイルの所有権をNginxユーザー(www-data)に変更します。 ):

sudo chown -R www-data: /var/www/domain1.com

サーバーブロックの作成#

Ubuntuシステムでは、Nginxサーバーブロック構成ファイルは/etc/nginx/sites-availableにあります。 ディレクトリ。 /etc/nginx/sites-enabledへのシンボリックリンクを作成することで有効にできます 起動時にNginxが読み取ったディレクトリ。

テキストエディタを開き、次のサーバーブロックファイルを作成します。

/etc/nginx/sites-available/example.com
server {
    listen 80;

    server_name example.com www.example.com;

    root /var/www/example.com/public_html;

    index index.html;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;
}
  • server_name :このサーバーブロック構成に一致する必要があるドメイン。
  • root :Nginxがドメインファイルを提供するディレクトリ。
  • access_logerror_log :ログファイルの場所を指定します。

構成ファイルには任意の名前を付けることができますが、通常はドメイン名を使用するのが最適です。

新しいサーバーブロックファイルを有効にするには、ファイルからsites-enabledへのシンボリックリンクを作成します Nginxが起動時に読み取ったディレクトリ:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

正しい構文についてNginx構成をテストします:

sudo nginx -t

エラーがない場合、出力は次のようになります。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

変更を有効にするには、Nginxサービスを再起動します。

sudo systemctl restart nginx

最後に、サーバーブロックが期待どおりに機能していることを確認するには、http://example.comを開きます。 選択したブラウザで、次のように表示されます:


Ubuntu
  1. Ubuntu20.04でリバースプロキシとしてNginxを設定する方法

  2. Ubuntu22.04でWireGuardを設定する方法

  3. UbuntuとCentOSでNginxサーバーブロックを設定する方法

  1. Ubuntu18.04でNginxサーバーブロックを設定する方法

  2. Ubuntu16.04でTeamSpeakサーバーをセットアップする方法

  3. Ubuntu18.04にNginxをインストールする方法

  1. Ubuntu18.04でOpenVPNサーバーをセットアップする方法

  2. Ubuntu20.04にNginxをインストールする方法

  3. CentOS7でNginxサーバーブロックを設定する方法