web-dev-qa-db-ja.com

同じIPで2つの別個のWebサーバーをホストする

現在、ApacheがセットアップされたUbuntu Webサーバーが素晴らしく実行されています。2つのことを行います。同じWANアドレスにあるが、もちろん個別のローカルアドレスを持つ2つのボックスをセットアップします。

したがって、メインサーバーとしてwww.example.comがあり、別のボックスにtest.example.comがあり、3番目にfun.example.comがあるとします。

どうすればこれを達成できますか?

5
Randy Kupel

George Kourouleas提供のリンクから

Apache Reverse Proxy

私が探していたものです

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName foo.com

  DocumentRoot /srv/www/default

  <Location "/">
    Order Deny, Allow
    Deny from all
    Allow from all
  </Location>
</VirtualHost>

<VirtualHost *:80>
  ServerName fooa.com

  ProxyPreserveHost on
  ProxyPass / http://server2/
  ProxyPassReverse / http://server2/
</VirtualHost>

<VirtualHost *:80>
  ServerName foob.com
  ServerAlias fooc.com

  ProxyPreserveHost on
  ProxyPass / http://server3/
  ProxyPassReverse / http://server3/
</VirtualHost>

Mod_proxyと共に私が欲しかったものです

5
Randy Kupel

注意

Apacheサーバーで仮想ホスト構成を作成しても、それらのホスト名に対してDNSエントリが魔法のように作成されることはありません。 DNSに名前を付けてIPアドレスに解決する必要があります。そうしないと、他の誰もあなたのWebサイトを見ることができなくなります。ローカルテスト用にホストファイルにエントリを置くことができますが、それはそれらのホストエントリを持つマシンからのみ機能します。

# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
    DocumentRoot /www/example1
    ServerName www.example.com

    # Other directives here
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /www/example2
    ServerName www.example.org

    # Other directives here
</VirtualHost>

アスタリスクはすべてのアドレスに一致するため、メインサーバーはリクエストを処理しません。 ServerName www.example.comの仮想ホストは構成ファイルの最初にあるという事実により、最高の優先度を持ち、デフォルトまたはプライマリサーバーと見なすことができます。つまり、指定されたServerNameディレクティブのいずれにも一致しない要求を受信した場合、この最初のVirtualHostによって処理されます。

http://httpd.Apache.org からの回答

敬具。

0