2つの異なるドメインを1つのIPアドレス(Apache)にポイントする方法


11

私は2つの異なるドメイン名を持っていますが、それらは同じプライベートホスティングでホストします。私は彼らに同じIPアドレスを指してもらいたいが、それでも(もちろん)異なるコンテンツを持たせたい。どうやってやるの?これを行う別の方法はありますか?その場合、最善の方法は何ですか。ありがとう。

回答:



14

Apache2は、すべてのドメインが同じIPアドレスに解決される場合でも、ドメイン名に応じて異なるコンテンツの提供をサポートします。各ドメイン名は仮想ホストによって処理されるため、名前ベースの仮想ホストです。

2つのドメインの構成例を以下に示します。

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

名前ベースの仮想ホストのサポートに関する公式ドキュメントはこちらにあります

ただし、これはHTTPS(HTTP over SSL)ではなく、プレーンHTTP接続でのみ機能することに注意してください。名前ベースの仮想ホストは、要求されている名前の認識に依存していますが、この情報は、暗号化されたSSLになるまでApacheに認識されません。接続が確立されました。

設定をHTTPSでも機能させる必要がある場合は、サーバー名表示(SNI)(RFC4366)と呼ばれるSSLプロトコルの拡張機能に依存する必要があります。基本的に、SNI対応クライアント(例:Webブラウザー)は、暗号化されたSSL接続を確立するときに追加のプレーンテキスト情報を追加し、SSL接続の準備ができる前にサーバーが要求されている名前を認識できるようにします。

すべてのブラウザーはまだSNIをサポートしていません。執筆時およびウィキペディアによれば、これらは次のとおりです。

  • Internet Explorer 7以降、Windows Vista以降(XP、IE 8でも機能しません)
  • Mozilla Firefox 2.0以降
  • Opera 8.0以降(TLS 1.1プロトコルを有効にする必要があります)
  • Opera Mobile(Androidでバージョン10.1ベータ以上)
  • Google Chrome(Vista以降、XP(Chrome 6以降)、OS X 10.5.7以降(Chrome 5.0.342.1以降))
  • Safari 2.1以降(Mac OS X 10.5.6以降およびWindows Vista以降)
  • Konqueror / KDE 4.7以降
  • Apple iOS 4.0以降のMobileSafari
  • Honeycomb(v3.x)以降のAndroidデフォルトブラウザ
  • Windows Phone 7
  • MaemoのMicroB

HTTPSを介してアクセス可能な名前ベースの仮想ホストをいくつかホストするには、mod_sslを有効にし、上記の例と同様の構成を追加する必要があります。

Listen 443      
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
# Clients without SNI will be handled by the first defined vhost.
# If you only want SNI-enabled client, put on instead
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/    
</VirtualHost>

<VirtualHost *:443>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

SSLを使用するには、ドメイン用のSSL証明書を購入するか、自動署名された証明書を生成し、SSL接続にそれらを使用するようにApacheを設定する必要があることに注意してください。


apache2構成ファイルの名前とパスを教えてください。
ジョアンピメンテルフェレイラ

変更後にApacheを再起動することを忘れないでくださいsudo service apache2 restart
ジョアン・ピメンテルフェレイラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.