如何在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 

DocumentRoot指向站点托pipe的本地文件夹结构中的文件夹,例如(在Linux系统上)/var/www/html/rockstart.net。 虚拟主机定义中必须包含端口号。 所以你的VHost定义应该看起来像:

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

但是,这仍然需要用户在他们的浏览器中inputhttp://rockstart.net:8001 。 我怀疑你的想法其实更像是一个redirect。 如果redirect需要包括端口的更改(即从8001到80),则您需要使用反向代理或DNAT防火墙。

或者,如果http://content.rockstart.net下的内容位于rockstart.net所在的服务器上,则可以简单地使&#x7528;

 <Location> 

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

DocumentRoot指令描述机器上的物理path,如/var/www/myvhost.net

将此伪指令设置为一个path,并使用ServerName作为第一个, ServerAlias作为您希望指向DocumentRoot定义的DocumentRoot其他名称。