如何在 apache 中将虚拟主机设置为某些端口的相同服务器 URL

如何在 apache 中将虚拟主机设置为某些端口的相同服务器 URL

我想设置一个虚拟主机到某个端口的 URL

例如我的服务器名称是rockstar.net

所以我想在我的服务器上设置一个子域名,我应该在其中访问http://rockstart.net:8001/

我尝试过:

<VirtualHost *>
  ServerName content.rockstart.net
  DocumentRoot "http://rockstart.net:8001/"

</VirtualHost>

给出错误

Warning: DocumentRoot [/etc/apache2/http:/rockstar.net:8001/] does not exist

答案1

DocumentRoot 指向本地文件夹结构中托管网站的文件夹,例如(在 Linux 系统上)/var/www/html/rockstart.net。端口号必须包含在 VirtualHost 定义中。因此,您的 VHost 定义应该如下所示:

<VirtualHost *:8001>
  ServerName content.rockstart.net
  DocumentRoot "/var/www/html/rockstart.net"

</VirtualHost>

然而,这仍然需要用户输入http://rockstart.net:8001进入他们的浏览器。我怀疑你脑子里想的其实更像是重定向。如果重定向需要更改端口(即从 8001 到 80),那么你要么需要使用反向代理,要么需要使用 DNAT 防火墙。

或者,如果要提供的内容http://content.rockstart.net位于rockstart.net所在的同一台服务器上,您只需使用

<Location> 

文件系统内的重定向。但是,在这种情况下,我想知道为什么您不将 content.rockstart.net 指向 rockstart.net:8001 获取其内容的同一位置?

答案2

DocumentRoot指令描述了机器上的物理路径,例如/var/www/myvhost.net

将此指令设置为路径,并将其用于ServerName第一个以及ServerAlias您想要指向文件的每个其他名称,定义在 中DocumentRoot

相关内容