在没有DNS的情况下使用内部虚拟主机

我需要在同一台机器上为大量网站提供服务。 我需要能够dynamic地添加和删除网站。

在内部,Web服务器需要认为请求是从虚拟主机到达的。

是否可以在前面使用nginx来处理以下格式的请求:example.com/vhost1/some/path并将其重写为:vhost1.example.com/some/path

我可以做到这一点,而无需为vhost1.example.comconfigurationDNS?

我是否需要将vhost1.example.com添加到机器上的主机名称?

谢谢

如果要testing与vhost project1.example.com的客户端连接,请将其添加到客户端上的/ etc / hosts文件(或等同于Windows)上:

10.87.42.22 project1.example.com 

然后尝试在浏览器中加载url。

你可以添加通配符域* .example.com(这是可能的BIND,不知道其他的DNS服务器),并设置nginx虚拟主机project1.example.com,project2.example.com …这样你就不会必须为每个添加的子域更新DNS!

我不太清楚你想达到什么目的。 如果仅仅是一个内部的重新映射,你应该能够使用一些非DNS相关的方法来改变它。 您可能需要更改DNSlogging的唯一原因是如果这涉及将客户端从example.comredirect到vhost.example.com

我在内部networking上运行djbDNS(之前已经完成了更多可公开访问的站点),所以*.localtest将parsing为给定的IP,Apache或thttpd将会使用Apache的VirtualDocumentRoot 。 你也可以用nginx做相同的事情(服务于一个基于HTTP_HOST的站点)。