ローカルDNS - サブドメインをapache2の他の仮想ホストにリダイレクトする

ローカルDNS - サブドメインをapache2の他の仮想ホストにリダイレクトする

Apache 2.4では、次のエントリを使用して3つの仮想ホストが設定されています。

<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        ServerName www.xx.de
</VirtualHost>
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/sh/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        ServerName sh.xx.de
</VirtualHost>
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/nc/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        ServerName n.xx.de
</VirtualHost>

インターネットとローカルネットワークを介して接続できます。しかし、ローカルネットワークにいる場合は、外部IPではなくローカルIPにクエリをリダイレクトしたいと思います。 DNSはApacheと同じデバイスにあります。xx.deローカルIPを確認するためにdnsmasqを試しました192.168.0.55xx.de/sh/たとえば。しかし、sh.xx.deうまくいきません。

ベストアンサー1

DNSはIPアドレスをURLではなくホスト名にマッピングします(その逆も同様です)。

URLは3つの*部分で構成されています。見てみましょう。http://example.com/foo:

  1. http:のようなシステム
  2. ホスト(例:example.com)
  3. /fooと同じパス

したがって、コンピュータのブラウザから要求した場合http://example.com/fooDNS は example.com を IP アドレスに変換します。その後、コンピュータはそのIPアドレスを使用して、デフォルトスキームポート(httpの場合80)を介してリモートコンピュータに接続します。

接続すると、HTTPリクエスト(GET / fooなど)を実行し、リクエストの一部としてHTTPを含めます。所有者ヘッダー。このヘッダーは、ブラウザがDNSで見つける必要があるホスト名をHTTPサーバーに伝えます。これにより、HTTPサーバーは要求を正しい場所にマップできます。仮想ホスト

IPアドレスが192.168.0.55のコンピュータに3つの仮想ホストを設定する必要があるようです。

  1. a.xx.com用のもの
  2. b.xx.comのコピー
  3. 実際の/aaaaディレクトリと/bbbbディレクトリをホストするデフォルトの仮想ホスト(元のIPアドレス192.168.0.55を上書き)

最初の2つは、3番目のパスがホストする正しいパスにリダイレクトする必要があります。

*他のセクション(ユーザー/パスワード、ポート、クエリなど)があるかもしれませんが、この例ではこれで十分です。

おすすめ記事