web-dev-qa-db-ja.com

サブドメインを異なるローカルIPにポイントする方法

私の質問は 動的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を使用しています

[解決済み]
解決

  1. DNSを設定する

AレコードはパブリックIPを示しています。
1 @ public.ip
2 www public.ip

CNAMEレコードはサブドメインをポイントします:
1 sub1 mydomain.com
2 sub2 mydomain.com

  1. Apacheをセットアップします。

追加 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>
5
thang nhoc

私は最近これをやった。 私の質問 を参照してください。ちょっと長い往復でしたが、最終的にはセットアップしました。

  • DNSを設定します。 AレコードはあなたのパブリックIPをポイントします。したがって、yourdomain.comはyour.pub.ip.addを指します。サブドメインのCNAMEレコードを追加します。したがって、sub1.yourdomain.comは@をポイントし、sub2.yourdomain.comは@をポイントします。サブドメインはすべて同じアドレスをポイントしていますが、ブラウザは、到達しようとしているサブドメイン。

  • Apacheをセットアップします。各サブドメイン(およびおそらくプライマリドメイン)にも仮想ホストを設定する必要があります。さまざまな場所で仮想ホストを定義できます...私は/etc/Apache2/sites-availableで定義されており、リバースプロキシを設定する<Location>ディレクティブが含まれています。

1
JoshP

これは実際にはWebサーバーの問題ではなく、DNSで整理する必要があります。あなたはmydomain.comのDNSを制御しますよね?したがって、関連するIPアドレスを指すサブドメインのAレコードを追加し、それらのアドレスが、それらのドメインにサービスを提供する必要があることを認識しているWebサーバーによって提供され、すべてが機能することを確認します。

何らかの奇妙なロードバランサーのように、すべてのサブドメインリクエストがmydomain.comのメインWebサーバーを経由することは、非効率的で不要です。

編集:申し訳ありませんが、サブドメインサーバーが内部ネットワーク上にあることを示すために192.168.0.0/16アドレスを使用していたとは思われませんでした。ドメイン名を編集したので、アドレスを編集しただけだと思っていました。

だから:すべてのウェブサーバーは内部ネットワークにありますか?またはサブドメインのものだけですか?後者の場合、現在メインWebサーバーと内部サーバーの間にどのようなVPN接続がありますか?

3
MadHatter

私があなたを正しく理解しているなら、これがあなたの状況です:

  • 単一の外部IPアドレスを持っている
  • 複数の内部Webサーバーがある(同じWebサーバー上の異なるWebルートだけでなく、異なる物理マシンまたはVMなど)

このような場合、ドメインが1つしかないため、ドメインごとに異なるIPを使用することはできません。 Apacheに「ホスト」HTTPヘッダーを使用して正しいサブドメインにルーティングするように単純に指示することもできません。これは、Apacheのセットアップ以外にも、すべて異なる内部IP上にあるためです。

そのような場合、私はリバースプロキシモードでSquidを使用します。「シンプルな」マシンにインストールし、ローカルまたはリモートの各Webサーバーにリクエストをリダイレクトします。

設定はかなり簡単です。このページは、標準のSquidのドキュメントから確認してください。このページには、何をしたいかが正確に記述されています。 http://wiki.squid-cache.org/ConfigExamples/Reverse/MultipleWebservers

リバースプロキシを使用すると、アプリケーションの互換性に問題が発生する可能性があり、SSLの設定はこのようなシナリオでは微妙です(ただし、実行は可能です)。

0
Stephane