有没有办法通过循环设置中的主机名访问特定的服务器?

有没有办法通过循环设置中的主机名访问特定的服务器?

我有一个 Apache Web 服务器集群,使用循环机制进行原始负载平衡。有没有办法让 Firefox 或 Chrome 从特定 IP 请求该服务器名称?

如果你只是输入http://1.2.3.4,它没有获取 ServerName,如果你输入http://服务器名称,您就可以获取任意服务器。

答案1

我假设您指的是 DNS 循环。在这种情况下,我能想到的基本方法就是编辑您的 /etc/hosts 以指向您想要在特定时刻尝试的任何后端:

1.2.3.4 servername

之后您可能需要重新启动浏览器以确保它没有使用缓存的 DNS 答案。

您还可以在 DNS 中添加其他条目,如 servername-001、-002 等,并配置后端以接受这些名称作为您要使用的 VirtualHost 的 ServerAlias。当然,您也可以将 VirtualHost 设置为默认值,这样它就可以使用 IP 工作,并省略最后一步,前提是您的应用程序不假设它以特定名称运行。

编辑:这可能很有用 - 这是一个 Firefox 扩展,可让您修改请求标头。您可以修改Host以直接指定 ServerName 来访问后端。不过我还没有尝试过。

https://addons.mozilla.org/en-us/firefox/addon/modify-headers/

答案2

您需要修改 HTTP Host 标头。

看:

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

我使用 curl 来做这个:

curl -H host:servername http://1.2.3.4

您可能会发现以下插件很有用:

https://addons.mozilla.org/en-us/firefox/addon/modify-headers/

https://addons.mozilla.org/en-US/firefox/addon/tamper-data/eula/33806

相关内容