ホームページ >バックエンド開発 >PHPチュートリアル >apache2.2仮想ホスト構成の詳細説明、apache2.2_PHPチュートリアルの詳細説明
リーリー
# を削除することは、Apache の仮想ホスト機能を有効にすることを意味します。リーリー
この行の # を削除することは、ファイル conf/extra/httpd-vhosts.conf から仮想ホスト構成をインポートすることを意味します2. httpd-vhosts.confを変更します
リーリー
名前仮想ホスト *:80注 1: NameVirtualHost は、仮想ホストによって使用される IP アドレスまたはドメイン名を指定しますが、IP アドレスを使用するのが最善です。 NameVirtualHost は、ドメイン名ベースの仮想ホストを使用する場合に必要なディレクティブです。複数の NameVirtualHost を定義できます。注 2: NameVirtualHost または 017421ec4e1d87ae7f66fefe80084b1d タグ定義に一致するすべてのリクエストは仮想ホストとして処理され、メイン サーバーはそれを無視します。 NameVirtualHost が定義されているが、017421ec4e1d87ae7f66fefe80084b1d タグが定義されていないリクエストの場合、サーバーは対応する仮想ホストを見つけることができず、それを処理できません。したがって、NameVirtualHost で定義された各パラメータは、少なくとも 1 つの
ServerAdmin 管理者のメールアドレス
DocumentRoot Web サイト ディレクトリ (注: Web サイト ディレクトリのパスにスペースが含まれる場合は、パスの両端に二重引用符を追加してください)
ServerName バインドするドメイン名 (必須)
ServerAlias バインドする仮想ホストのエイリアス。 (オプション。複数のドメイン名がある場合は、スペースで区切ります。そうでない場合は、行を削除します)
*.abc.com などの * および ? ワイルドカードをサポートします。これは、abc.com の任意の第 2 レベルのドメイン名にアクセスできることを意味します。
CustomLog ユーザー ログ ファイル (オプション、不要な場合はこの行を削除します)
ErrorLog エラー ログ (オプション、不要な場合はこの行を削除します)
IPアドレスベースの仮想ホスティング
リーリー
各仮想ホストはスペースで区切って複数の IP を定義できますさまざまな仮想ホストの混合使用
混合仮想ホスト使用時の問題
1. 仮想ホストの混合使用は次のように理解できます。NameVirtualHost 命令の行によって定義されるすべての仮想ホストはグループであり、このグループは IP ベースの仮想ホストと同じレベルにあります。つまり、NameVirtualHost の行で定義されるグループ全体が IP ベースの仮想ホストとみなされます。 2. 仮想ホストによって指定されたポートは、Listen によって定義されている必要があります。仮想ホストでポートが指定されていない場合は、ポート 80 とみなされます。 NameVirtualHost * がこのように定義されている場合、すべてのアドレスに対して定義されているすべてのポートを参照します。 3. より具体的なアドレス定義が優先されます。たとえば、NameVirtualHost ディレクティブは *:80 を定義し、IP ベースの仮想ホストは 192.168.0.1:80 として定義されます。この時点で 192.168.0.1:80 に対するリクエストは 192.168 に送信されます。最初に 0.1:80 の仮想ホストを定義しました。したがって、混乱を避けるために、重複するアドレス範囲や相互に含まれるアドレス範囲を定義しないでください。 4. 仮想ホストは、ドメイン名ベースと IP ベースの両方にすることができます。前の例の最後の仮想ホストと同様です。このようにして、両方の定義を満たすリクエストは同じ仮想ホストに送信されます。内部ネットワークからのリクエストは外部ネットワークからのリクエストと異なる可能性がありますが、同じ仮想ホストを指す必要があるため、仮想ホストへの内部ネットワーク アクセスと外部ネットワーク アクセスを区別するときにこれを行うことができる場合があります。
「_default_」仮想ホストを使用します
リーリー
この仮想ホストは、他の仮想ホストの IP とポートに一致しないリクエストを引き継ぎます。ただし、この場合、メインサーバーはリクエストを処理しません。したがって、メインサーバーを仮想ホストとして構成する必要があります。
他のマシン上で実行されているローカルマシンプロキシ仮想ホスト
リーリー
一、首先这是一个基于IP的虚拟主机,它接收并处理对IP地址158.29.33.248的请求。 二、ProxyPass /foo http://192.168.111.2 将把对http://158.29.33.248/foo的请求转换为一个代理请求,该请求指向http://192.168.111.2。 三、ProxyPass /foo/no ! 不代理针对/foo/no的请求。这个必须放在正常代理指令之前。 四、ProxyPreserveHost On 意思是传送原始请求的Host信息给被代理的机器。 五、ProxyPassReverse /foo http://192.168.111.2 可以保证请求URL在其它机器上被重定向后,本机处理时也可以保持一致。具体看手册关于反向代理的部分。 六、基于域名的虚拟主机也是同样的道理。不管是什么类型的虚拟主机,它只是处理归它处理的请求而已。
配置实例
需求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项。 <VirtualHost 61.122.3.6:8080> ServerAdmin webmaster@dummy-host.www.phpStudy.net DocumentRoot "d:/web/openj" </VirtualHost>