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.55
。xx.de/sh/
たとえば。しかし、sh.xx.de
うまくいきません。
答え1
DNSはIPアドレスをURLではなくホスト名にマッピングします(その逆も同様です)。
URLは3つの*部分で構成されています。見てみましょう。http://example.com/foo:
- http:のようなシステム
- ホスト(例:example.com)
- /fooと同じパス
したがって、コンピュータのブラウザから要求した場合http://example.com/fooDNS は example.com を IP アドレスに変換します。その後、コンピュータはそのIPアドレスを使用して、デフォルトスキームポート(httpの場合80)を介してリモートコンピュータに接続します。
接続すると、HTTPリクエスト(GET / fooなど)を実行し、リクエストの一部としてHTTPを含めます。所有者ヘッダー。このヘッダーは、ブラウザがDNSで見つける必要があるホスト名をHTTPサーバーに伝えます。これにより、HTTPサーバーは要求を正しい場所にマップできます。仮想ホスト。
IPアドレスが192.168.0.55のコンピュータに3つの仮想ホストを設定する必要があるようです。
- a.xx.com用のもの
- b.xx.comのコピー
- 実際の/aaaaディレクトリと/bbbbディレクトリをホストするデフォルトの仮想ホスト(元のIPアドレス192.168.0.55を上書き)
最初の2つは、3番目のパスがホストする正しいパスにリダイレクトする必要があります。
*他のセクション(ユーザー/パスワード、ポート、クエリなど)があるかもしれませんが、この例ではこれで十分です。