我想设置一个虚拟主机到一些端口的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所在的服务器上,则可以简单地使用
<Location>
在文件系统内redirect。 然而,在这种情况下,我想知道为什么你不只是将content.rockstart.net指向rockstart.net:8001获取内容的同一位置?
DocumentRoot指令描述机器上的物理path,如/var/www/myvhost.net 。
将此伪指令设置为一个path,并使用ServerName作为第一个, ServerAlias作为您希望指向DocumentRoot定义的DocumentRoot其他名称。