私の質問は 動的IPを使用してローカルドメインをサブドメインにポイントする方法 と同じです。違いは、ISPから静的IPを取得していることです。DynDNSを使用する必要がないと思いますか?代わりに何を使用できますか?
私の目標は、各サブドメインを次のように異なるWebサーバーにポイントすることです。
mydomain.com-> 192.168.1.100(メインWebサーバー)
sub1.mydomain.com-> 192.168.1.101(ウェブサーバー1)
sub2.mydomain.com-> 192.168.1.102(ウェブサーバー2)
Apache follow命令 here のプロキシモジュールを使用しようとしましたが、成功しませんでした。ブラウザでsub1.mydomain.comにアクセスすると、常にmydomain.comが表示されます。
これをこのアプローチで実行できますか?そうでない場合は、別の方法を教えてください。
Ubuntu Server 12.04を使用しています
[解決済み]
解決
AレコードはパブリックIPを示しています。
1 @ public.ip
2 www public.ip
CNAMEレコードはサブドメインをポイントします:
1 sub1 mydomain.com
2 sub2 mydomain.com
追加 sub1
およびsub2
から/etc/Apache2/sites-available
sub1:
<VirtualHost *:80>
ServerName sub1.mydomain.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://192.168.1.101/
ProxyPassReverse http://192.168.1.101/
</Location>
</VirtualHost>
sub2:
<VirtualHost *:80>
ServerName sub2.mydomain.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://192.168.1.102/
ProxyPassReverse http://192.168.1.102/
</Location>
</VirtualHost>
私は最近これをやった。 私の質問 を参照してください。ちょっと長い往復でしたが、最終的にはセットアップしました。
DNSを設定します。 AレコードはあなたのパブリックIPをポイントします。したがって、yourdomain.comはyour.pub.ip.addを指します。サブドメインのCNAMEレコードを追加します。したがって、sub1.yourdomain.comは@
をポイントし、sub2.yourdomain.comは@
をポイントします。サブドメインはすべて同じアドレスをポイントしていますが、ブラウザは、到達しようとしているサブドメイン。
Apacheをセットアップします。各サブドメイン(およびおそらくプライマリドメイン)にも仮想ホストを設定する必要があります。さまざまな場所で仮想ホストを定義できます...私は/etc/Apache2/sites-available
で定義されており、リバースプロキシを設定する<Location>
ディレクティブが含まれています。
これは実際にはWebサーバーの問題ではなく、DNSで整理する必要があります。あなたはmydomain.com
のDNSを制御しますよね?したがって、関連するIPアドレスを指すサブドメインのA
レコードを追加し、それらのアドレスが、それらのドメインにサービスを提供する必要があることを認識しているWebサーバーによって提供され、すべてが機能することを確認します。
何らかの奇妙なロードバランサーのように、すべてのサブドメインリクエストがmydomain.com
のメインWebサーバーを経由することは、非効率的で不要です。
編集:申し訳ありませんが、サブドメインサーバーが内部ネットワーク上にあることを示すために192.168.0.0/16アドレスを使用していたとは思われませんでした。ドメイン名を編集したので、アドレスを編集しただけだと思っていました。
だから:すべてのウェブサーバーは内部ネットワークにありますか?またはサブドメインのものだけですか?後者の場合、現在メインWebサーバーと内部サーバーの間にどのようなVPN接続がありますか?
私があなたを正しく理解しているなら、これがあなたの状況です:
このような場合、ドメインが1つしかないため、ドメインごとに異なるIPを使用することはできません。 Apacheに「ホスト」HTTPヘッダーを使用して正しいサブドメインにルーティングするように単純に指示することもできません。これは、Apacheのセットアップ以外にも、すべて異なる内部IP上にあるためです。
そのような場合、私はリバースプロキシモードでSquidを使用します。「シンプルな」マシンにインストールし、ローカルまたはリモートの各Webサーバーにリクエストをリダイレクトします。
設定はかなり簡単です。このページは、標準のSquidのドキュメントから確認してください。このページには、何をしたいかが正確に記述されています。 http://wiki.squid-cache.org/ConfigExamples/Reverse/MultipleWebservers
リバースプロキシを使用すると、アプリケーションの互換性に問題が発生する可能性があり、SSLの設定はこのようなシナリオでは微妙です(ただし、実行は可能です)。