如果 rewrite-location 属性设置为 True,则它将重写原始请求信息,并会包括协议(HTTP 或 HTTPS)、主机和端口信息。默认情况下,会将 rewrite-location 属性设置为 True,以便保持与以前 Application Server 版本的向后兼容性。
不能通过 asasmin create-http-lb-config 命令或 asadmin set 命令来使用 rewrite-location 属性。要使用该属性,请在导出负载平衡器配置后将其手动添加到 loadbalancer.xml 文件中。例如,将以下内容添加到导出的 loadbalancer.xml 文件中:
<property name="rewrite-location" value="false"/>
设置 rewrite-location 属性时,请记住以下几点:
如果 httpsrouting 为 False,且 Application Server 中未启用 authPassthroughEnabled,请将 rewrite-location 属性设置为 True。如果未启用 authPassthroughEnabled,Application Server 将不能识别原始请求的协议(HTTP 或 HTTPS)。通过将 rewrite-location 设置为 True,负载平衡器可适当地修改重写位置的协议部分。 即,如果客户机发送 HTTPS 请求,则负载平衡器会将客户机重定向到负载平衡器上启用 HTTPS 的侦听器端口。对于 HTTP 请求,该过程相同。
如果 httpsrouting 为 False,且 Application Server 中启用了 authPassthroughEnabled,则 rewrite-location 既可设置为 True,也可设置为 False,因为 Application Server 可识别客户机请求是 HTTP 还是 HTTPS。启用了 authPassthroughEnabled 时,Application Server 可适当地修改重写位置的协议部分。如果 rewrite-location 设置为 False,则负载平衡器不会重写已重定向 URL 的位置。如果设置为 True,则它会重写已重定向 URL 的位置。但此重写是不需要的,因为 Application Server 可以识别来自客户机的 HTTPS 连接。另外,如果应用程序需要将 HTTP 重定向到 HTTPS,或将 HTTPS 重定向到 HTTP,则必须将 rewrite-location 参数设置为 False。