我们使用Apache2在本地networking的一个系统上托pipe多个站点。 一个这样的网站如下:
<VirtualHost *:80> ServerName wiki.idi.local DocumentRoot /srv/dokuwiki/engineering </VirtualHost>
在我们的本地DNS服务器上,我们将地址wiki.idi.local转发给托pipe该站点的PC,并且一切按预期工作。
本周以来,我们通过将本地IP地址映射到外部networking(通过代理redirect),获得了从外部访问本地networking的方法。 所以例如地址3.205.151.6(外部)被redirect到172.16.1.6(内部)。 这对VirtualHost中的DocumentRoot是localhost:port的站点来说工作得很好。 在这种情况下,我们可以直接调用3.205.151.6:port来访问我们的系统。 问题是,在上面提到的情况下,我找不到通过IP访问网站的方法。 有没有办法做到这一点,而无需访问转发的代理?
您可能需要的是在DNS软件中设置视图,以便互联网上的DNS查询得到公共IP地址的回复,本地networking的DNS查询则通过私有IP进行响应。 有关更多信息, 请查看此链接
在Apache端,您需要添加一些公用名称,因为.local域不可parsing。 所以,假设你拥有idi.com域名,你可以用类似的方法更新你的VirtualHost
<VirtualHost *:80> ServerName wiki.idi.local ServerAlias wiki.idi.com DocumentRoot /srv/dokuwiki/engineering </VirtualHost>
并确保您的公共DNS视图为wiki.idi.com响应与IP 3.205.151.6和可能你可以设置私人DNS视图相同的wiki.idi.com回答172.16.1.6 ,你不需要域名wiki.idi.local的。