仮想ホストについて

仮想ホストは、単一のIPアドレスから複数のドメインを実行するために使用されます。 これは、1台のサーバーから複数のサイトを実行する必要がある人にとって特に便利です。 サイトは、ユーザーがサイトにアクセスしたユーザーに応じて、訪問者に異なる情報を表示します。サーバーに追加できる仮想ホストの数に制限はありません。

設定

このチュートリアルの手順では、ユーザーがroot権限を持っている必要があります。 手順3と4で、ここを設定する方法を確認できます。

さらに、apacheが既にインストールされ、ドロップレットで実行されている必要があります。 そうでない場合は、次のコマンドでダウンロードできます。

sudo pacman -S apache

ステップ1-新しいディレクトリを作成する

仮想ホストを作成する最初のステップは、新しいWebサイトの情報を保持するディレクトリを作成することです。

この場所は、後でApache仮想ホスト構成ファイルのドキュメントルートになります。

<pre>sudo mkdir /srv/http/domain1.com</pre>
sudo mkdir /srv/http/domain2.com

仮想ホストが機能していることをテストするには、実際のDNS承認済みドメインまたはIPアドレスを指定する必要があります。 このチュートリアルでは、domain1.comとdomain2.comを正しいドメイン名のプレースホルダーとして使用します。

ただし、未承認のドメイン名を使用してプロセスをテストする場合は、ステップ7でローカルコンピューターでそれを機能させる方法に関する情報を見つけることができます。

ステップ2—ページを作成する

新しいホストのディレクトリ内に、サイトにアクセスしたときに表示されるサンプルページを作成する必要があります。

sudo nano /srv/http/domain1.com/index.html

ファイルにテキストを追加して、何かを確認することができます。

&lthtml>
  &lthead>
    &lttitle>domain1.com</title>
  </head>
  &ltbody>
    &lth1>Success: You Have Set Up a Virtual Host</h1>
  </body>
</html>

保存して終了

同じ手順を繰り返して2番目のドメインのページを作成し、必要に応じてdomain2に置き換えます。

sudo nano /srv/http/domain2.com/index.html

ステップ3—仮想ホストを構成する

仮想ホスト構成自体に飛び込む前に、サーバーで仮想ホストが有効になっていることを確認する必要があります。 apache構成を開きます。

sudo nano /etc/httpd/conf/httpd.conf

この行がコメント化されていないことを確認してください(ファイルの最後にあります)。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

apacheフォルダー内の仮想ホストファイルにアクセスできます。

sudo nano /etc/httpd/conf/extra/httpd-vhosts.conf

構成は次のようになります(デフォルトのarch linuxセットアップ):

&ltVirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/srv/http/domain1.com"
    ServerName domain1.com
    ServerAlias www.domain1.com
    ErrorLog "/var/log/httpd/domain1.com-error_log"
    CustomLog "/var/log/httpd/domain1.com-access_log" common
</VirtualHost>

&ltVirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/srv/http/domain2.com"
    ServerName domain2.com
    ErrorLog "/var/log/httpd/domain2.com-error_log"
    CustomLog "/var/log/httpd/domain2.com-access_log" common
</VirtualHost>

このファイルで仮想ホストを設定します。

仮想ホストファイルのこれらのセクションの情報をカスタマイズすることにより、1つのIPアドレスから発信された2つの別々のサイトを表示できます。

対処する最も重要なセクションは、ドキュメントルート、ServerNameです。

  • ドキュメントルートは、サーバーファイルを含むディレクトリを指します。 このチュートリアルの場合、ステップ1で作成したファイルへのパスを指定します。 仮想ホストは、ドキュメントルートがないと機能しません。
  • サーバー名はサイトのドメイン名です。 ここで、ドキュメントルートが提供するサイトを指定できます。 サーバー名の前にwwwを含める場合は、ServerNameの下の「ServerAlias」行に含めることができます。

仮想ホストをカスタマイズしたら、保存してファイルを終了します。 次に、仮想ホストの構成を確認できます。

apachectl configtest

ステップ3—Apacheを再起動します

構成に多くの変更を加え、仮想ホストをセットアップしました。 ただし、Apacheを再起動するまで、行った変更は有効になりません。

apacheを再起動する前に、hostsファイルにドメイン名を入力する必要があります。 完全修飾ドメインを使用している場合は、IPアドレスの後にドメイン名を入力してください。

sudo nano /etc/hosts
127.0.0.1       domain1.com
127.0.0.1       domain2.com

完全修飾ドメインを使用していない場合は、 / etc /hostnameファイルにある名前を正しい行の最後に配置します。 この追加なしでは、Apacheは再起動しません。

127.0.0.1       localhost.localdomain   localhost droplet1

そのファイルを保存した後、apacheを再起動します。

sudo rc.d restart httpd

オプションのステップ4—ローカルホストの設定

仮想ホストまたはサーバーのIPアドレスに登録済みのドメイン名を使用している場合は、この手順をスキップできます。ローカルホストを設定する必要はありません。 仮想ホストが機能するはずです。 ただし、実際のドメイン名に接続せずに新しい仮想ホストを試してみたい場合は、コンピューターだけでローカルホストを設定できます。

この手順では、ドロップレットではなく、コンピューター自体を使用していることを確認してください。

この手順を続行するには、コンピューターの管理者パスワードを知っている必要があります。そうでない場合は、実際のドメイン名を使用して仮想ホストをテストする必要があります。

MacまたはLinuxを使用している場合は、コンピューターのrootユーザー(su)にアクセスし、hostsファイルを開きます。

sudo nano /etc/hosts

Windowsコンピュータを使用している場合は、Microsoftサイトでホストファイルを変更する手順を見つけることができます。

次の例に示すように、このファイルにローカルホストの詳細を追加できます。 その行がある限り、たとえばexample.comにブラウザを向けると、サーバーに設定したすべての仮想ホストの詳細が表示されます。

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost

#Virtual Hosts 
12.34.56.789   domain1.com
12.33.44.555   domain2.com

ただし、今後の混乱を避けるために、完了したら、これらの構成されたアドレスをローカルホストフォルダから削除することをお勧めします。

ステップ5—結果:仮想ホストの動作を確認する

仮想ホストの設定が完了すると、オンラインでどのように表示されるかを確認できます。 サーバー名をブラウザに入力します(つまり、 domain1.com)

それは私の便利なスクリーンショットにいくぶん似ているはずです:

ドメイン1:

https://assets.digitalocean.com/tutorial_images/rZPsj.png?1