序章

Ubuntuでは、Nginxウェブサーバーはそのドキュメントを/var / www / html に保存します。これは通常、残りのオペレーティングシステムとともにルートファイルシステムにあります。 ただし、ドキュメントルートを別のマウントされたファイルシステムなどの別の場所に移動すると便利な場合があります。 たとえば、同じNginxインスタンスから複数のウェブサイトにサービスを提供する場合、各サイトのドキュメントルートを独自のボリュームに配置すると、特定のサイトまたはクライアントのニーズに応じて拡張できます。

このガイドでは、Nginxドキュメントルートを新しい場所に移動します。

前提条件

このガイドを完了するには、次のものが必要です。

  • Ubuntu18.04サーバーとsudo権限を持つroot以外のユーザー。 これらの権限を持つユーザーを設定する方法の詳細については、 Ubuntu18.04を使用したサーバーの初期設定ガイドを参照してください。
  • Ubuntu 18.04にNginxをインストールする方法に従って、Nginxをインストールしました。
  • サーバー用に構成されたTLS/SSL証明書。 3つのオプションがあります。
    • Let’s Encrypt から、 Ubuntu18.04でLet’sEncryptを使用してNginxを保護する方法に従って無料の証明書を取得できます。
    • Ubuntu 18.04 でNginxの自己署名SSL証明書を作成する方法に従って、自己署名証明書を生成および構成することもできます。
    • 別のプロバイダーから購入し、 Ubuntu 18.04 でNginxの自己署名SSL証明書を作成する方法の手順2〜6に従って、それを使用するようにNginxを構成できます。

このチュートリアルではドメイン名example.comを使用しますが、これを独自のドメイン名に置き換える必要があります。

  • ドキュメントルートの新しい場所。 このチュートリアルでは、 /mnt/volume-nyc3-01 新しい場所のディレクトリ。 DigitalOceanでブロックストレージを使用している場合は、このガイドで、ボリュームを作成して接続する方法を説明します。 ただし、新しいドキュメントルートの場所は、ニーズに基づいて構成できます。 ドキュメントルートを別のストレージデバイスに移動する場合は、デバイスのマウントポイントの下の場所を選択する必要があります。

ステップ1—ファイルを新しい場所にコピーする

Nginxの新規インストールでは、ドキュメントルートは次の場所にあります。 /var/www/html. ただし、前提条件ガイドに従うことで、新しいドキュメントルートを作成しました。 /var/www/example.com/html. 追加のドキュメントルートもあるかもしれません。 このステップでは、ドキュメントルートの場所を確立し、関連するファイルを新しい場所にコピーします。

を使用してドキュメントルートの場所を検索できます grep. で検索してみましょう /etc/nginx/sites-enabled アクティブなサイトに焦点を絞るためのディレクトリ。 The -R フラグは grep 両方の行を root ディレクティブとその出力の完全なファイル名:

  1. grep -R "root" /etc/nginx/sites-enabled

新しいサーバーで前提条件のチュートリアルに従った場合、結果は次のようになります。

Output
/etc/nginx/sites-enabled/example.com: root /var/www/example.com/html; /etc/nginx/sites-enabled/default: root /var/www/html; /etc/nginx/sites-enabled/default: # deny access to .htaccess files, if Apache's document root /etc/nginx/sites-enabled/default:# root /var/www/example.com;

既存の設定がある場合、結果はここに表示されているものと異なる場合があります。 いずれの場合も、からのフィードバックを使用できます grep 目的のファイルを移動し、適切な構成ファイルを更新していることを確認します。

ドキュメントルートの場所を確認したので、次のコマンドでファイルを新しい場所にコピーできます。 rsync. を使用して -a フラグは、アクセス許可とその他のディレクトリプロパティを保持しますが、 -v 同期の進行状況を追跡できるように、詳細な出力を提供します。

注:ディレクトリに末尾のスラッシュがないことを確認してください。これは、タブ補完を使用する場合に追加される可能性があります。 末尾にスラッシュがある場合、 rsync ディレクトリの内容を、それを含むものに転送するのではなく、マウントポイントにダンプします html ディレクトリ。

  1. sudo rsync -av /var/www/example.com/html /mnt/volume-nyc3-01

次のような出力が表示されます。

Output
sending incremental file list created directory /mnt/volume-nyc3-01 html/ html/index.html sent 318 bytes received 39 bytes 714.00 bytes/sec total size is 176 speedup is 0.49

ファイルを配置したら、これらの変更を反映するようにNginx構成を変更することに移りましょう。

ステップ2—構成ファイルを更新する

Nginxは、グローバル構成ファイルとサイト固有の構成ファイルの両方を利用します。 構成ファイルの階層の背景については、「仮想プライベートサーバーでNginxWebサーバーを構成する方法」を参照してください。 example.comプロジェクトサーバーブロックファイルを変更します。 /etc/nginx/sites-enabled/example.com.

注:あなたの場合は覚えておいてください example.com になります your_domain_name、およびを実行したときに出力されたサーバーブロックファイルを変更すること grep 手順1のコマンド。

開くことから始めます /etc/nginx/sites-enabled/example.com エディターで:

  1. sudo nano /etc/nginx/sites-enabled/example.com

で始まる行を見つける root 新しいルートの場所で更新します。 私たちの場合、これは /mnt/volume-nyc3-01/html:

/etc/nginx/sites-enabled/example.com
server {

        root /mnt/volume-nyc3-01/html;
        index index.html index.htm index.nginx-debian.html;
        . . .
}
. . .

によって出力された元のドキュメントルートパスが表示される他の場所に注意してください grep ステップ1で、エイリアスまたは書き換えを含みます。 また、新しいドキュメントルートの場所を反映するようにこれらを更新することもできます。

必要な変更をすべて行ったら、ファイルを保存して閉じます。

ステップ3—Nginxを再起動する

構成の変更が完了したら、Nginxを再起動して結果をテストできます。

まず、構文が正しいことを確認します。

  1. sudo nginx -t

すべてが正常であれば、次のように返されます。

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

テストが失敗した場合は、問題を追跡して修正します。

テストに合格したら、Nginxを再起動します。

  1. sudo systemctl restart nginx

サーバーが再起動したら、影響を受けるサイトにアクセスして、期待どおりに機能していることを確認します。 すべてが正常に機能していることを確認したら、データの元のコピーを削除することを忘れないでください。

  1. sudo rm -Rf /var/www/example.com/html

これで、Nginxドキュメントルートが新しい場所に正常に移動されました。

結論

このチュートリアルでは、Nginxドキュメントルートを新しい場所に変更する方法について説明しました。 これは、単一のサーバー上の複数のサイトを効果的に管理するなど、基本的なWebサーバーの管理に役立ちます。 また、ネットワークブロックストレージなどの代替ストレージデバイスを利用することもできます。これは、ニーズの変化に応じてWebサイトを拡張するのに役立ちます。

忙しいまたは成長しているWebサイトを管理している場合は、コンテンツの高速転送を利用するために HTTP /2でNginxをセットアップする方法を学ぶことに興味があるかもしれません。 本番Webアプリケーションサーバーのセットアップを改善する5つの方法のこの比較で、本番エクスペリエンスの改善についてさらに学ぶことができます。