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

Ubuntu 18.04/20.04でNginxサーバーブロックを構成する方法

Nginxでは、サーバーブロック 特定のドメイン情報を定義するために使用されます。複数のドメインまたはWebサイトをホストするのに役立ちます。各ブロックには、ドキュメントルート、SSL、ポートなどの特定のドメイン情報が含まれています。 NginxサーバーブロックはApache仮想ホストに似ています。

このチュートリアルでは、Nginxサーバーブロックを構成する方法を学びます。 Ubuntuの場合18.04/ 20.04

前提条件

Ubuntu 18.04/20.04インスタンスが必要です。インスタンスにはNginxがインストールされている必要があります。 sudoアクセス権を持つユーザーを要求します。

ステップ1.ディレクトリ構造を作成する

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

/var/www/
├── domain1.com
│   └── images
│   └── index.html
│   └── style.css
├── domain2.net
│   └── images
│   └── index.html
│   └── style.css

基本的に、サーバー上でホストするドメインごとに、/var/www内に個別のディレクトリを作成します。 ディレクトリ。

ドメインのルートディレクトリを作成しましょう:

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

テストの目的で、ドメインのドキュメントルートディレクトリ内にindex.html、style.cssファイル、およびimagesディレクトリを作成します。

$ cd /var/www/domain1.com/
/var/www/domain1.com$ sudo mkdir images index.html style.css

エディターを開き、デモファイルを作成します:

/var/www/domain1.com/index.html
<!DOCTYPE html> <html lang="en" dir="ltr">

<head> <meta charset="utf-8">

<title>Welcome to domain1.com</title> <link rel="stylesheet" href="style.css"/>

</head>

<body> <h1 style="color:green;text-align:center;">Success! domain1.com home page!</h1>

</body>

</html>

ここでは、コマンドをsudoとして実行しています。 ユーザーと新しく作成されたファイルとディレクトリは、rootが所有します ユーザー。

権限の問題を回避するために、ドメインドキュメントのルートディレクトリの所有権をNginxユーザー(www-data)に変更できます。 :

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

domain2.netに対しても同じ手順を実行します

ステップ2.ドメインごとにNginxサーバーブロックファイルを作成する

提供したいコンテンツができたので、Nginxにこれを行う方法を指示するサーバーブロックを実際に作成する必要があります。

デフォルトでは、Nginxにはdfaultという1つのサーバーブロックが含まれています これは、独自の構成のテンプレートとして使用できます。まず、最初のドメインのサーバーブロックを設計し、次に2番目のドメインにコピーして、必要な変更を加えます。

1)最初のNginxサーバーブロックファイルを作成します

上記のように、デフォルトのファイルをコピーして、最初のサーバーブロック構成ファイルを作成します。

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/domain1.com

次に、sudo権限を使用してテキストエディタで作成した新しいファイルを開きます。

$ sudo nano /etc/nginx/sites-available/domain1.com

ファイルを編集すると、次のようになります。

/etc/nginx/sites-available/domain1.com
server { 

listen 80; 

listen [::]:80; 

root /var/www/domain1.com; 

index index.html index.htm index.nginx-debian.html; 

server_name domain1.com www.domain1.com; 

location / 

    { try_files $uri $uri/ =404; 

  } 
}

基本構成に必要なのはこれだけです。ファイルを保存して閉じ、Ctrlを終了します + x

2)2番目のNginxサーバーブロックファイルを作成します

最初のNginxサーバーブロック構成ができたので、それを2番目のファイルの基礎として使用できます。それをコピーして新しいファイルを作成します:

$ sudo cp /etc/nginx/sites-available/domain1.com /etc/nginx/sites-available/domain2.net

sudoで新しいファイルを開きます エディターでの特権:

$ sudo nano /etc/nginx/sites-available/domain2.net

2番目のドメインのドキュメントrootを指すようにrootディレクティブを調整します server_nameを調整します 2番目のサイトのドメイン名と一致するようにします(エイリアスを含めるようにしてください)。

終了すると、ファイルは次のようになります。

/etc/nginx/sites-available/domain2.net
server { 

listen 80; 

listen [::]:80; 

root /var/www/domain2.net; 

index index.html index.htm index.nginx-debian.html; 

server_name domain2.net www.domain2.net; 

location / 

{ try_files $uri $uri/ =404; 

  } 
}

ファイルを保存して閉じ、Ctrlを終了します + x

ステップ3.Nginxサーバーブロックを有効にしてNginxを再起動します

サーバーブロックファイルができたので、それらを有効にする必要があります。これを行うには、これらのファイルからsites-enabledへのシンボリックリンクを作成します。 Nginxが起動時に読み取るディレクトリ。

次のように入力して、これらのリンクを作成できます。

$ sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/domain2.net /etc/nginx/sites-enabled/

これらのファイルは有効なディレクトリにあり、3つのサーバーブロックが有効になっています:

1. domain1.com:domain1.comおよびwww.domain1.comのリクエストに応答します
2. domain2.net:domain2.netおよびwww.domain2.netのリクエストに応答します
3.デフォルト:他の2つのブロックと一致しないポート80の要求に応答します。

サーバー名を追加することで発生する可能性のあるハッシュバケットメモリの問題を回避するために、先に進み、/ etc / nginx/nginx.confファイル内の単一の値を調整します。今すぐファイルを開きます:

$ sudo nano /etc/nginx/nginx.conf

ファイル内で、server_names_hash_bucket_sizeを見つけます 指令。 #を削除します 行のコメントを解除する記号:

/etc/nginx/nginx.conf
http { . . . server_names_hash_bucket_size 64; . . . }

終了したら、ファイルを保存して閉じます。

次に、テストして、Nginxファイルのいずれにも構文エラーがないことを確認します。

$ sudo nginx -t

問題が見つからなかった場合は、Nginxを再起動して変更を有効にします:

$ sudo systemctl restart nginx

これで、Nginxは両方のドメイン名を提供するはずです。

ステップ4.Webサイトにアクセスして確認する

これですべてのセットアップが完了したので、サーバーブロックが正しく機能していることをテストする必要があります。これを行うには、Webブラウザでドメインにアクセスします。

http://domain1.com

次のようなページが表示されます。

2番目のドメイン名にアクセスすると、わずかに異なるサイトが表示されます。

http://domain2.net

結論

このチュートリアルでは、Ubuntu 18.04/20.04でNginxサーバーブロックを構成する方法を学びました。 Nginxサーバーブロックを使用して、Webリクエストを処理するために2つのドメインを設定しました。


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

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

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

  1. Debian 9 /Ubuntu16.04サーバーでHAProxyを設定する方法

  2. Ubuntu 18.04 /Debian9にNginxをインストールして構成する方法

  3. Ubuntu16.04でBaculaサーバーを構成する方法

  1. UbuntuでOSSECを構成する方法-パート2

  2. Ubuntu16.04でOpenVPNを構成する方法

  3. Ubuntu 18.04/20.04にMRTGをインストールして設定する方法