ホームページ  >  記事  >  バックエンド開発  >  apache2.2仮想ホスト構成

apache2.2仮想ホスト構成

WBOY
WBOYオリジナル
2016-08-08 09:24:281245ブラウズ

1. httpd.conf を変更します

appserv インストール ディレクトリを開き、httpd.conf ファイルを見つけて、次の 2 行のテキストの前にある # 記号を削除します。

[プレーン]ビュー 普通のコピー

  1. #LoadModule vhost_alias_module modules/mod_vhost_alias.so
Remove # は、Apache の仮想ホスト機能を有効にすることを意味します。

[プレーン]ビュー 普通のコピー

  1. #Include conf/extra/httpd-vhosts.conf
この行の # を削除することは、conf/extra/httpd-vhosts.conf ファイルから仮想ホスト構成をインポートすることを意味します

II 、 httpd-vhosts.conf を変更します

ファイルを開くと、次のような内容が表示されます。仮想ホストの構成も以下の内容に従って構成されます。以下に内容を説明します

[プレーン]ビュー 普通のコピー

  1. NameVirtualHost *:80
  2. ServerAdmin web master@dummy-host.www.phpStudy.net
  3. DocumentRoot "C : /Program Files/Apache2/docs/dummy-host.www.phpStudy.net"
  4. ServerName dummy-host.www.phpStudy.net
  5. ServerAlias www.dummy-host.www.phpStudy. net
  6. ErrorLog "logs/dummy-host.www.phpStudy.net-error.log"
  7. CustomLog "logs/dummy-host.www.phpStudy.net-access.log" 共通
NameVirtualHost *:80

注 1: NameVirtualHost は、仮想ホストによって使用される IP アドレスまたはドメイン名を指定しますが、IP アドレスを使用するのが最善です。 NameVirtualHost は、ドメイン名ベースの仮想ホストを使用する場合に必要なディレクティブです。複数の NameVirtualHost を定義できます。
注 2: NameVirtualHost または タグ定義に一致するすべてのリクエストは仮想ホストとして処理され、メイン サーバーはそれを無視します。 NameVirtualHost が定義されているが、 タグが定義されていないリクエストの場合、サーバーは対応する仮想ホストを見つけることができず、それを処理できません。したがって、NameVirtualHost で定義された各パラメータは、少なくとも 1 つの と一致する必要があります。
注 3: NameVirtualHost または を *:80 に設定すると、ポート 80 に対するすべてのリクエストが仮想ホストによって処理され、リクエストはドメイン名に基づいて特定の仮想ホストに送信されます。ポート 80 からの要求があり、要求されたドメイン名が仮想ホストとして構成されていない場合、最初の仮想ホストを指します。このようにすると、メインサーバーはポート 80 からリクエストを受信できなくなります。この目的のために、メイン サーバーに対して仮想ホストも構成する必要があります。

ServerAdmin 管理者の電子メール

DocumentRoot Web サイト ディレクトリ (注: Web サイト ディレクトリのパスにスペースが含まれる場合は、パスの両端に二重引用符を追加してください)

ServerName バインドするドメイン名 (必須)

ServerAliasバインドされる指定された仮想ホストのエイリアス。 (オプション。複数のドメイン名がある場合は、スペースで区切ります。そうでない場合は、行を削除します)

2 つのワイルドカード: * と ? (*.abc.com など) をサポートします。これは、任意の第 2 レベルのドメイン名を意味します。 abc.com はアクセス可能です。

CustomLog ユーザー ログ ファイル (オプション、不要な場合はこの行を削除します)

ErrorLog エラー ログ (オプション、必要ない場合はこの行を削除します)

IP アドレスに基づく仮想ホスト

[プレーン] ビュー 普通のコピー

  1. DocumentRoot /www/example1
  2. サーバー名 www.example.com
  3. < ;/仮想ホスト>

[プレーン]ビュー 普通のコピー

  1. DocumentRoot /www/example2
  2. サーバー名 www. 各仮想ホストはスペースで区切って複数の IP を定義できます
  3. さまざまな仮想ホストの混合使用
[プレーン] ビュー 普通のコピー

聞く 80

    聞く 81
  1. 名前仮想ホスト 172.20.30.40
  2. <仮想ホスト 172.20.30.40>
  3. ドキュメントルート /www /example1
  4. サーバー名 www.example.com
  5. DocumentRoot /www/example2
  6. サーバー名 www.example.org
  7. NameVirtualHost 172.20.30.40:81
  8. DocumentRoot /www/example3
  9. サーバー名 www.example3.net
  10. # IP ベース
  11. DocumentRoot /www/example4
  12. サーバー名 www.example4.edu
  13. DocumentRoot /www/example5
  14. ServerName www.example5.gov
  15. 仮想ホストが混在する場合の問題 1.仮想ホストの数を把握できる次のようになります。 1 行 NameVirtualHost ディレクティブによって定義されたすべての仮想ホストはグループ化されます。このグループは IP ベースの仮想ホストと同じです。つまり、NameVirtualHost の行で定義されるグループ全体が IP ベースの仮想ホストとみなされます。
  16. 2. 仮想ホストで指定されたポートは、Listen によって定義されている必要があります。仮想ホストでポートが指定されていない場合は、ポート 80 とみなされます。 NameVirtualHost * がこのように定義されている場合、すべてのアドレスに対して定義されているすべてのポートを参照します。
  17. 3. より具体的なアドレス定義が推奨されます。たとえば、NameVirtualHost ディレクティブは *:80 を定義し、IP ベースの仮想ホストは 192.168.0.1:80 として定義されます。この時点で 192.168.0.1:80 に対するリクエストは 192.168 に送信されます。最初に 0.1:80 の仮想ホストを定義しました。したがって、混乱を避けるために、重複するアドレス範囲や相互に含まれるアドレス範囲を定義しないでください。 4. 仮想ホストはドメイン名ベースと IP ベースの両方にすることができます。前の例の最後の仮想ホストと同様です。このようにして、両方の定義を満たすリクエストは同じ仮想ホストに送信されます。これは、仮想ホストへの内部ネットワーク アクセスと外部ネットワーク アクセスを区別するときに実行できる場合があります。これは、内部ネットワークからのリクエストが外部ネットワークからのリクエストと異なる場合がありますが、それらは同じ仮想ホストを指す必要があるためです。
  18. 「_default_」仮想ホストを使用します
  19. この仮想ホストは、IPベースの仮想ホストとして理解できます
  20. [プレーン]ビュー 普通のコピー

DocumentRoot /www/default




この仮想ホストは他の仮想ホストの IP とポートを引き継ぎます。仮想ホスト 一致しないリクエスト。ただし、この場合、メインサーバーはリクエストを処理しません。したがって、メインサーバーを仮想ホストとして構成する必要があります。

他のマシン上で実行されているローカルマシンプロキシ仮想ホスト

[プレーン]ビュー 普通のコピー

  1. ProxyPass /foo/no ! ProxyPass /foo http://192.168.111.2
  2. ProxyPassReverse /foo http://192.168.111.2
  3. ServerName hostname.example.com
  4. まず、これはペアを受信して​​処理する IP ベースの仮想ホストです。 IP アドレス 158.29.33.248 のリクエスト。
  5. 2. ProxyPass /foo http://192.168.111.2 は、http://158.29.33.248/foo のリクエストを http://192.168.111.2 を指すプロキシ リクエストに変換します。
  6. 3. ProxyPass /foo/no! /foo/no のリクエストをプロキシしません。これは通常のプロキシ ディレクティブの前に配置する必要があります。
4. ProxyPreserveHost On は、元のリクエストのホスト情報をプロキシ マシンに送信することを意味します。
5. ProxyPassReverse /foo http://192.168.111.2 は、リクエスト URL が他のマシンにリダイレクトされた後、このマシンで一貫して処理できることを保証します。詳細については、リバース プロキシに関するマニュアルのセクションを参照してください。
6. ドメイン名ベースの仮想ホストにも同じことが当てはまります。仮想ホストの種類に関係なく、仮想ホストは処理するリクエストのみを処理します。
構成例要件 1:
これは IP ベースの仮想ホストの使用例です
ドメイン名解決の問題により通常のアクセスを防ぐために、IP を使用してインターフェイスにアクセスします。例: http://61.122.3.6:8080/ このように。仮想ホストの構成は次のとおりです: 1. httpd.conf の Listen 80 の下に行を追加します。内容は次のとおりです: Listen 8080、つまり 8080 ポートをリッスンします

2. 仮想ホストの構成を構成します

[プレーン]ビュー 普通のコピー

#NameVirtualHost 61.122.3.6:8080 この行は必須ではありません。テスト後、IP アドレスに基づく仮想ホストは NameVirtualHost 項目を設定する必要がありません。

  1. ServerAdmin webmaster@dummy-host.www.phpStudy.net
  2. DocumentRoot "d :/web/openj"
  3. 上記は、関連する内容も含めて、apache2.2 の仮想ホスト構成を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。