前書き

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

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

前提条件

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

  • * `+ sudo +`特権を持つ非rootユーザーを持つUbuntu 16.04サーバー*。 これらの権限を持つユーザーを設定する方法については、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 [Ubuntu 16.04での初期サーバー設定]をご覧ください。 ]ガイド。

  • * Nginx Webサーバー*:まだ設定していない場合は、詳細な記事https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16 -04 [Ubuntu 16.04にNginxをインストールする方法]、ガイドできます。

  • ドキュメントルートの新しい場所:新しいドキュメントルートの場所は、ニーズに基づいて完全に構成可能です。 ドキュメントルートを別のストレージデバイスに移動する場合は、デバイスのマウントポイントの下の場所を選択します。 この例では、 `+ / mnt / volume-nyc1-01 +`ディレクトリを使用します。 DigitalOceanでBlock Storageを使用している場合、https://www.digitalocean.com/community/tutorials/how-to-use-block-storage-on-digitalocean [このガイド]は、続行する前にドライブをマウントする方法を示しますこのチュートリアルで。

手順1-ファイルを新しい場所にコピーする

Nginxの新規インストールでは、ドキュメントルートは `+ / var / www / html`にあります。 ただし、既存のサーバーを使用している場合は、対応するサーバーブロックディレクティブに複数のドキュメントルートを含む、大幅に異なるセットアップが存在する場合があります。

`+ grep `を使用して、追加のドキュメントルートの場所を検索できます。 ` / etc / nginx / sites-enabled `ディレクトリを検索して、アクティブなサイトにフォーカスを限定します。 ` -R `フラグは、 ` grep `が ` root +`ディレクティブを含む行と出力のファイル名の両方を確実に出力するようにします:

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

結果は以下の出力のようになりますが、既存のインストールでは結果の名前と数が異なる可能性があります。

Output/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 +`は詳細な出力を提供するため、進行状況を追跡できます。

sudo rsync -av /var/www/

これで、構成を更新する準備ができました。

ステップ2-構成ファイルの更新

Nginxは、グローバルおよびサイト固有の構成ファイルの両方を使用します。 構成ファイルの階層に関する背景については、https://www.digitalocean.com/community/tutorials/how-to-configure-the-nginx-web-server-on-a-virtual-private-serverをご覧ください。 [仮想プライベートサーバーでNginx Webサーバーを構成する方法]。

既存のインストールで作業している場合は、以前に見つけたファイルを `+ grep `コマンドで変更する必要があります。 この例では、 ` default +`というデフォルトの設定ファイルを見ていきます。

エディターでファイルを開きます。

sudo nano /etc/nginx/sites-enabled/default

次に、「+ root +」で始まる行を見つけて、新しい場所で更新します。

/ etc / nginx / sites-enabled / default

. . .
      # include snippets/snakeoil.conf;
      root ;


      # Add index.php to the list if you are using PHP


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

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

ステップ3-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/html

結論

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

忙しいまたは成長しているWebサイトを管理している場合、https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-with-http-2-support-の学習に興味があるかもしれませんon-ubuntu-16-04 [HTTP / 2でNginxをセットアップする方法]は、コンテンツの高速転送速度を活用します。 また、https://www.digitalocean.com/community/tutorials/5-ways-to-improve-your-production-web-application-server-setup [5つの方法実稼働Webアプリケーションサーバーのセットアップを改善する]。