DNS-将子文件夹的DNS路由到其他服务器?
假设我想有一个名为http://www.foo.com/news/的子文件夹,但实际上我希望该新闻文件夹位于其他服务器上。我知道可以使用子域轻松完成此操作,但我确实希望有子文件夹。
是否有可能?如何?
解决方案
是的,IIS中有一个设置,可让我们将子文件夹指向其他站点。因此,将子文件夹设为我们站点上的虚拟目录,然后在虚拟目录的属性中选择"重定向到URL"选项...,在其中指定其他站点。
当然,这是假设我们正在使用IIS。在我们使用的任何Web服务器中都应该有类似的可用内容。
DNS解析发生在域级别。 DNS不了解URL或者文件夹,因此名称将始终指向同一台服务器。我们可以使该服务器实际从另一台服务器检索信息或者将其重定向到另一台服务器,但是我想这并不是很令人满意。
由于域名只是地址的* .example.com,因此无法通过DNS进行。
可以通过在www机器上配置代理以将对/ news的所有请求传递到另一台服务器来完成。使用apache很容易,但是我现在不记得所有的细节。
唯一的真正方法是在我们与外界之间使用反向代理(或者充当反向代理的Web服务器),该代理知道每个文件夹所在的IP地址。
仅仅做一些事情是不可能的,例如,使google.com出现在http://foobar.com/google/上,因为浏览器无法路由到IP地址(缺少信息)。
我们可以使用整页IFrame或者"其他"框架集系统来伪造这种效果,但这相当狡猾。
如果我们使用的是Apache,则可以使用mod_proxy进行设置。更多详情可在这找到:
- Mod_Proxy(1.3)手册
- Mod_Proxy(2.0)手册
- Apache Tutor.org指南
对于Apache,需要httpd.conf中的以下条目:
LoadModule proxy_module modules / mod_proxy.so
LoadModule proxy_http_module模块/mod_proxy_http.so
ProxyPass / news http://newsserver.domain.com/news
ProxyPassreverse / http://newsserver.domain.com/