NginxWebルートをUbuntu20.04の新しい場所に移動する方法
序章
Ubuntuでは、Nginxウェブサーバーはそのドキュメントを/var / www / html に保存します。これは通常、オペレーティングシステムの他の部分とともにルートファイルシステムにあります。 ただし、ドキュメントルートを別のマウントされたファイルシステムなどの別の場所に移動すると便利な場合があります。 たとえば、同じNginxインスタンスから複数のウェブサイトにサービスを提供する場合、各サイトのドキュメントルートを独自のボリュームに配置すると、特定のサイトまたはクライアントのニーズに応じて拡張できます。
このガイドでは、Nginxドキュメントルートを新しい場所に移動します。
前提条件
このガイドを完了するには、次のものが必要です。
- Ubuntu20.04サーバーとsudo権限を持つroot以外のユーザー。 これらの権限を持つユーザーを設定する方法の詳細については、 Ubuntu20.04を使用したサーバーの初期設定ガイドをご覧ください。
- Ubuntu 20.04にNginxをインストールする方法に従って、Nginxをインストールしました。
- サーバー用に構成されたTLS/SSL証明書。 3つのオプションがあります。
Ubuntu20.04でLet’sEncryptを使用してNginxを保護する方法に従って、Let’sEncryptから無料の証明書を取得できます。 Ubuntu 20.04でNginxの自己署名SSL証明書を作成する方法に従って、自己署名証明書を生成および構成することもできます。 Ubuntu 20.04でNginxの自己署名SSL証明書を作成する方法のステップ3と4に従って、別のプロバイダーから購入し、それを使用するようにNginxを構成できます。
このチュートリアルではドメイン名your_domainを使用しますが、これを独自のドメイン名に置き換える必要があります。
- ドキュメントルートの新しい場所。 このチュートリアルでは、新しい場所に
/mnt/volume-nyc3-01
ディレクトリを使用します。 DigitalOceanでブロックストレージを使用している場合は、このガイドで、ボリュームを作成して接続する方法を説明します。 ただし、新しいドキュメントルートの場所は、ニーズに基づいて構成できます。 ドキュメントルートを別のストレージデバイスに移動する場合は、デバイスのマウントポイントの下の場所を選択する必要があります。
ステップ1—ファイルを新しい場所にコピーする
Nginxの新規インストールでは、ドキュメントルートは/var/www/html
にあります。 ただし、前提条件ガイドに従うことで、新しいドキュメントルート/var/www/your_domain/html
を作成しました。 追加のドキュメントルートもあるかもしれません。 このステップでは、ドキュメントルートの場所を確立し、関連するファイルを新しい場所にコピーします。
grep
を使用して、ドキュメントのルートの場所を検索できます。 /etc/nginx/sites-enabled
ディレクトリを検索して、アクティブなサイトに焦点を絞りましょう。 -R
フラグは、grep
がroot
ディレクティブを含む行と完全なファイル名の両方を出力に出力することを保証します。
- grep -R "root" /etc/nginx/sites-enabled
新しいサーバーで前提条件のチュートリアルに従った場合、結果は次のようになります。
Output/etc/nginx/sites-enabled/your_domain: root /var/www/your_domain/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/your_domain;
既存の設定がある場合、結果はここに表示されているものと異なる場合があります。 いずれの場合も、grep
からのフィードバックを使用して、目的のファイルを移動し、適切な構成ファイルを更新していることを確認できます。
ドキュメントルートの場所を確認したので、rsync
を使用してファイルを新しい場所にコピーできます。 -a
フラグを使用すると、アクセス許可とその他のディレクトリプロパティが保持され、-v
は詳細な出力を提供するため、同期の進行状況を追跡できます。
注:ディレクトリに末尾のスラッシュがないことを確認してください。これは、タブ補完を使用する場合に追加される可能性があります。 末尾にスラッシュがある場合、rsync
は、ディレクトリを含むhtml
ディレクトリに転送するのではなく、ディレクトリの内容をマウントポイントにダンプします。
- sudo rsync -av /var/www/your_domain/html /mnt/volume-nyc3-01
次のような出力が表示されます。
Outputsending 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サーバーを構成する方法」を参照してください。 your_domainプロジェクトのサーバーブロックファイルを変更します:/etc/nginx/sites-enabled/your_domain
。
注: your_domain
をドメイン名に置き換えることを忘れないでください。また、手順1でgrep
コマンドを実行したときに出力されたサーバーブロックファイルを変更することを忘れないでください。 。
エディターで/etc/nginx/sites-enabled/your_domain
を開くことから始めます。
- sudo nano /etc/nginx/sites-enabled/your_domain
root
で始まる行を見つけて、新しいルートの場所で更新します。 この場合、これは/mnt/volume-nyc3-01/html
になります。
server {
root /mnt/volume-nyc3-01/html;
index index.html index.htm index.nginx-debian.html;
. . .
}
. . .
手順1でgrep
によって出力された元のドキュメントルートパスが表示される他の場所に注意してください。エイリアスや書き換えも含まれます。 また、新しいドキュメントルートの場所を反映するようにこれらを更新することもできます。
必要な変更をすべて行ったら、ファイルを保存して閉じます。
ステップ3—Nginxを再起動する
構成の変更が完了したら、Nginxを再起動して結果をテストできます。
まず、構文が正しいことを確認します。
- sudo nginx -t
すべてが正常であれば、次のように返されます。
Outputnginx: 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
サーバーが再起動したら、影響を受けるサイトにアクセスして、期待どおりに機能していることを確認します。 すべてが正常に機能していることを確認したら、データの元のコピーを削除することを忘れないでください。
- sudo rm -Rf /var/www/your_domain/html
これで、Nginxドキュメントルートが新しい場所に正常に移動されました。
結論
このチュートリアルでは、Nginxドキュメントルートを新しい場所に変更する方法について説明しました。 これは、単一のサーバー上の複数のサイトを効果的に管理するなど、基本的なWebサーバーの管理に役立ちます。 また、ネットワークブロックストレージなどの代替ストレージデバイスを利用することもできます。これは、ニーズの変化に応じてWebサイトを拡張するのに役立ちます。
忙しいまたは成長しているWebサイトを管理している場合は、コンテンツの高速転送を利用するために HTTP /2でNginxをセットアップする方法を学ぶことに興味があるかもしれません。