同一 IP 和端口上的虚拟主机

同一 IP 和端口上的虚拟主机

这可能吗?

我当前的 vhost.conf 条目:

<VirtualHost www2.b-page.lv:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/xampp/htdocs/b-page"
    ServerName b-page
    ServerAlias www2.b-page.lv
    ErrorLog "logs/b-page.lv-error.log"
    CustomLog "logs/b-page.lv-access.log" combined
</VirtualHost>
<VirtualHost www2.m-page.lv:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/xampp/htdocs/m-page"
    ServerName m-page
    ServerAlias www2.m-page.lv
    ErrorLog "logs/m-page.lv-error.log"
    CustomLog "logs/m-page.lv-access.log" combined
</VirtualHost>

主机文件:

127.0.0.1       www2.b-page.lv
127.0.0.1       www2.m-page.lv

这些页面将在同一台服务器上使用相同的 CMS 运行。任何帮助或指南都将不胜感激。谢谢!

答案1

是的,这是可能的,而且很常见,你想要基于名称的虚拟主机虚拟主机基本上有两种类型:基于名称和基于 IP。如果您打算运行 SSL,那么基于名称的情况会变得更加复杂,但仍然是可行的。

它的工作原理是查看请求中的 HTTP 标头来查看所请求的域名。

答案2

不要忘记放:

名称虚拟主机 127.0.0.1:80

以上 vhosts 定义

答案3

如果配置和你的例子一样简单,那么你可能需要看看 mod_vhost_alias

答案4

请注意,NameVirtualHost 支持依赖于 HTTP 1.1 版或更高版本。您很难找到不支持该版本或更高版本的任何浏览器或 HTTP 工具( 、 等)wgetcurl

这个概念是姓名在该版本或更高版本中,URL 请求标头中会包含服务器/主机的名称。HTTP 1.0 允许在不指定服务器名称的情况下请求 URL(最初合理的假设是任何 URL 都是“本地”资源,因为已经与“该”目标服务器建立了 TCP 连接)。早在 20 世纪 90 年代(是的,在上个千年)服务器上服务的概念……以及主机名的概念与今天有所不同。“网络”实际上是第一次成功创建全球命名空间互联网上的信息。像 gopher、wais 和 archie 这样的旧协议是为了链接、索引和编目资源而做出的努力。然而,这与创建命名空间并不完全相同。“虚荣”域名的概念,以及试图选择主机和域名来传达部分信息……或者至少是“那里”的资源的品牌……都是新生事物。

相关内容