假设 DNSsystem.example.com
被重定向到我安装了 Apache 的服务器 IP。假设域名example.com
是在 GoDaddy 购买的,而我对此 DNS 没有管理控制权,这意味着我无法直接重定向system.example.com
到 GoDaddy 中的其他服务器。
我想使用 Apache 创建一个新的重定向到具有不同 IP 地址的服务器。在伪代码中,我考虑了类似以下操作:
<VirtualHost *:80>
ServerName system.example.com
Redirect 301 / http://192.0.2.1/
</VirtualHost>
这个 Apache 配置不起作用,它只是一个示例。这个想法是将到达我服务器的域名重定向到不同的服务器。这与A
在 GoDaddy 中使用重定向完全相同……但在 Apache 中执行此操作。可能吗?我可以将到达我服务器的 DNS 重定向到不同的服务器吗?
答案1
是也不是。
不,你不能“重定向 DNS” 使用 Web 服务器。如果主机名system.example.com
需要解析到不同的服务器,则需要调整 DNS 记录。(您不能使用 HTTP 协议在 DNS 协议级别进行更改。)
是的,您可以配置您的网络服务器,以便使用 HTTP 重定向来响应 HTTP 请求(所有请求或仅针对特定主机名的请求)。
重定向指示网络浏览器向其他位置发出新请求,而您网站的访问者将看到其浏览器的地址栏中的内容 http://system.example.com
更改为http://192.0.2.1/
。
当您希望打开 Web 服务器来system.example.com
显示来自其他 Web 服务器的内容时,更常见的方法是将其配置为“反向代理” 而不是发送重定向。这不会改变地址栏,但可能会导致其他问题,并会消耗更多带宽。
答案2
如果我正确理解了你的问题,不。名称解析完全由客户端控制,您唯一能做的就是在服务器上更新 DNS RR。因此,请咨询能控制 DNS。我们在这里解决业务问题,要求人们为了业务而采取行动是正常的。
您可以在 HTTP 地址中使用原始 IP 地址,因此您建议的重定向将起作用。但是,现在不建议在这种情况下使用 IP 地址。最好使用您可以控制的任何其他域。无论如何,这基本上就是您正在做的事情。