我们的用户目前通过输入“ourwebsite”来访问我们的内部网站。有一个 DNS 条目将 ourwebsite 映射到 Cisco ACE 4700 的 IP 地址。DNS 名称 ourwebsite.ourcompany.org 也映射到 Cisco ACE 4700 的 IP 地址。
我们希望我们的用户开始使用 ourwebsite.ourcompany.org,并停止使用“ourwebsite”。在一段时间内,我们希望“ourwebsite”仍能将他们带到我们的网站。
我们想知道是否可以配置 Cisco ACE 4700,以便当用户输入http://我们的网站它会立即重定向到http://ourwebsite.ourcompany.org。
这可能吗?例如通过 URL 重写规则?
答案1
我知道这是一个老问题(与我回答时有关),但我可以说这是 Cisco ACE 可以使用一些简单的配置指令来做的事情。
假设您使用类似这样的简单配置来设置您的网站:
rserver host HOST1
ip address 1.2.3.4
inservice
rserver host HOST2
ip address 5.6.7.8
inservice
serverfarm host OURWEBSITE
probe <your-probe>
rserver HOST1 80
inservice
rserver HOST2 80
inservice
class-map match-all VIP-OURWEBSITE
match virtual-address 1.1.1.1 tcp eq www
policy-map type loadbalance first-match LB-OURWEBSITE
class class-default
serverfarm OURWEBSITE
policy-map multi-match VIP-SERVICE-POLICY
class VIP-OURWEBSITE
loadbalance vip inservice
loadbalance policy LB-OURWEBSITE
loadbalance vip icmp-reply active
这是您可以在 ACE 上配置的更基本的负载平衡设置类型之一。它所做的只是将请求反向代理回真实服务器。命名约定仅用于示例目的;您可以选择任何您想要的名称。
您要做的是匹配来自客户端的主机标头 - 如果是“ourwebsite”,则应将请求发送到重定向服务器场,强制将 HTTP 30x“ourwebsite.ourcompany.org”重定向到客户端。
rserver redirect REDIRECT-OURWEBSITE
webhost-redirection http://ourwebsite.ourcompany.org%p 301
inservice
serverfarm redirect REDIRECT-OURWEBSITE
rserver REDIRECT-OURWEBSITE
inservice
以上设置了重定向对象。在“webhost-redirection”指令中,您会注意到 %p 和 301。%p 是一个变量,它从客户端请求中获取路径并将其添加到重定向中 - 这样,如果有人有,比如说,http://我们的网站/somepage.html已添加书签,重定向将自动将其发送到http://ourwebsite.ourcompany.org/somepage.html而不是将它们发送到静态配置的页面。这完全是可选的,因此如果您希望将它们发送到已配置的页面而不是自动重定向,只需保留该 %p 变量并将其替换为要重定向到的 URL。301 使重定向发送 HTTP 代码 301 - 告诉请求客户端该页面已“永久移动”到这个新地址。
现在我们将设置与主机头请求匹配的对象http://我们的网站。
class-map match-all MATCH-OURWEBSITE
match http header Host header-value "ourwebsite"
policy-map type loadbalance first-match LB-OURWEBSITE
class MATCH-OURWEBSITE
serverfarm REDIRECT-OURWEBSITE
新的类映射将设置一个匹配类,在 HTTP Host 标头中查找“ourwebsite”。匹配规则使用简单的正则表达式,因此上述内容不会匹配“ourwebsite.ourcompany.org”。
上面的第二条指令来自先前定义的策略图LB-我们的网站,将新的匹配类插入到负载平衡策略中。如果策略映射中唯一的类是类默认,这个新类将插入到该类的上方。如果您已经拥有一个或多个该类的上方类默认,您可以使用以下方式在其中任何一个上方插入此规则类 MATCH-OURWEBSITE 插入之前它会将其插入到您指定的类别之上。
一旦完成所有操作,通常最好通过执行以下操作来循环 VIP:无负载平衡 VIP 服务随后是负载平衡 VIP 服务在服务政策中:
policy-map multi-match VIP-SERVICE-POLICY
class VIP-OURWEBSITE
no loadbalance vip inservice
loadbalance vip inservice
在负载平衡策略图中添加匹配项并不是必需的,但一些其他指令需要 VIP 服务策略的循环,因此这是一个很好的习惯。
完成所有设置后的完整配置如下:
rserver host HOST1
ip address 1.2.3.4
inservice
rserver host HOST2
ip address 5.6.7.8
inservice
rserver redirect REDIRECT-OURWEBSITE
webhost-redirection http://ourwebsite.ourcompany.org%p 301
inservice
serverfarm host OURWEBSITE
probe <your-probe>
rserver HOST1 80
inservice
rserver HOST2 80
inservice
serverfarm redirect REDIRECT-OURWEBSITE
rserver REDIRECT-OURWEBSITE
inservice
class-map match-all MATCH-OURWEBSITE
match http header Host header-value "ourwebsite"
class-map match-all VIP-OURWEBSITE
match virtual-address 1.1.1.1 tcp eq www
policy-map type loadbalance first-match LB-OURWEBSITE
class MATCH-OURWEBSITE
serverfarm REDIRECT-OURWEBSITE
class class-default
serverfarm OURWEBSITE
policy-map multi-match VIP-SERVICE-POLICY
class VIP-OURWEBSITE
loadbalance vip inservice
loadbalance policy LB-OURWEBSITE
loadbalance vip icmp-reply active
从那里,根据您的退役过程,您可以在一段时间后禁用 DNS 条目,甚至可以修改网站主机重定向指令指向一个页面,告诉用户停止使用主机名连接到网站。这完全取决于您的停用政策。
希望这可以帮助!