我一直很难弄清楚我在工作中需要做什么,所以这将是我的尝试。
我有一台供自己使用的服务器,其中运行着 WAMP 服务器,我已经弄清楚了如何将其联机并导航到它。目标是使它只用于 Intranet,我也发现了这一点(IP 的前 3 个部分位于httpd.conf
文件中的必需部分中)并进行了测试。考虑到这一点,我想使用相同的 IP 地址在该服务器上托管 2 个项目,然后让公司内部的人员通过主机名访问它们。
因此,如果我命名它们projectA
,并且projectB
我有两个虚拟主机,它们具有服务器名称projectA
,并projectB
包含在服务器上的 httpd.conf 文件中。此外,由于我们在工作中运行某些东西,我让它监听端口 8080 而不是端口 80。
为了进行短期测试,我的笔记本电脑在 hosts 文件中有一个条目,将 IP 地址映射到我要使用的主机名,我们称之为hostC
。
我希望能够通过在搜索栏中输入类似以下内容来以合理的方式访问projectA
和projectB
打开,但我看到的只是将服务器名称显示为类似以下内容,然后将其从主机横幅中删除。那么我可以做我想做的事吗?还是我的想法完全错误?hostC
//hostC/projectA/projectA/fileA.php
www.projectA.com
如果我的做法是错误的,我的想法是,要么我需要在主机文件中映射两个主机(将在公司的 DNS 服务器中表示),并使其更像//hostA/projectAindex.php
和,//hostB/projectBindex.php
要么只是将其保留为一个主机,并提供一个分叉到两个不同项目的页面,如//hostA/projectAindex.php
和//hostA/projectBindex.php
。其中一个更有意义吗?
我阅读了大量相关内容,并查阅了 Apache 文档,但我仍然不完全确定它的含义或如何思考它。
答案1
如果您想从修改了 hosts 文件的计算机以外的任何计算机HostC
以主机名(例如hostc.local
)进行访问,则必须设置 DNS 服务器以将此名称映射到您的 Web 服务器的 IP 地址。
如果 HostC 可以作为服务器的 IP 地址,那么您就可以使用它。
假设任何一种情况,你可以把子文件夹(ProjectA
和ProjectB
)放在 HostC(您的 Web 服务器)中以访问http://HostC/ProjectA/fileA.php
和http://HostC/ProjectB/index.php
。您不需要虚拟主机。
如果你http://HostA/ProjectA/fileA.php
想要http://HostB/ProjectB/index.php
,那么您需要在 DNS 中定义 HostA 和 HostB(以便从任何计算机访问它们,而无需修改 hosts 文件,假设您不想通过 IP 地址/端口组合访问它们)。您需要使用虚拟主机条目,假设 HostA 和 HostB 都映射到 上的 Web 服务器。如果您想以本地域名而不是 IP 地址HostC
进行访问,则在这种情况下只需映射 HostC。HostC
您可能还希望虚拟主机通过反向代理来访问服务,http://HostD:80/directoryD/
例如HostD:8080/directoryF/
例如123.123.123.123
。