我们有一个生产 ERP 服务器,此前只能通过 LAN 访问。现在我们要求该服务器的部分内容可以从外部访问。
我们不在内部运行 DNS,因此所有访问都仅通过 192.168.xx 进行。从 LAN 外部访问的少数例外是通过将路由器 ACL 中的几个 IP 列入白名单,并添加静态路由以转发到达路由器静态 WAN IP 的流量来完成的。
现在,我已经设置了一个域名来访问我们的另一个 IP。路由器配置中还有另一个静态路由,用于将该 IP 的流量转发到同一台服务器。我基本上只是创建了另一种方法来访问 80/443 上的同一台服务器。
我现在想要做的是设置一个虚拟主机配置,以便通过新域进入的流量能够到达特定的文件夹...domain.com/public
例如。
我不确定的是,这会对现有的无虚拟主机设置产生什么影响(如果有的话)。
总结
如果我设置了一个虚拟主机配置来将基于域的流量指向特定的文件夹,那么我是否必须明确(设置另一个虚拟主机)非基于域的流量是否能够像现在这样到达根目录?
答案1
如果域虚拟主机要使用与主服务器相同的 IP 和端口,则需要添加默认虚拟主机。
您需要首先在配置文件中列出默认虚拟主机,以确保在通过 IP 地址访问服务器时使用它。
请参阅此处的“主主机消失”框http://httpd.apache.org/docs/2.4/vhosts/name-based.html#using
答案2
Apache 根据配置文件中条目的位置来决定 VirtualHost 的“位置”。您需要两个条目(一个用于 VirtualHost,另一个用于 *:80/443),并将 VirtualHost 放在前包罗万象的声明。
答案3
任何解析到您的 Web 服务器 IP 地址但未在虚拟主机节中明确列出的域都将获得第一个列出的虚拟主机的内容。因此,如果您按顺序有“a.com”、“b.com”和“c.com”的节,并且域“d.com”解析到相同的 IP 地址,您将获得“a.com”域的网页。