负载均衡负载转发中的 HTTP 重定向问题解决方法

  • by

当浏览器访问网站 http://example.com 时,对服务器而言需要进行一次重定向,判断需要定向至根目录。

而当浏览器访问网站 http://example.com/ 时服务器会直接返回网站设置的根目录默认页面。

同样的,假设 http://example.com/movie 被URL重写跳转到 http://example.com/movie/ 上的话,则输入 http://example.com/movie 就会多一次 URL 重写的过程,在性能和时间上都有微小的损耗。 但在结果上没有差别。

但若 http://example.com/product 被 URL 重写转跳到非 http://example.com/product/ 同一页面上,则需要考虑是否在二级页面后添加/。

腾讯云负载均衡中,如果前后端端口号不一致时,为了避免 HTTP 重定向后导致端口号更改,访问二级页面需要加/保证页面的正常访问。

假设七层转发下,负载均衡实例监听80端口,后端服务器监听 8081 端口。此时客户端访问 http://www.example.com/movie ,经由负载均衡转发至后端服务器,服务器收到发往 http://www.example.com/movie 的请求并会重定向到 http://www.example.com:8081/movie/(监听端口为8081),此时客户端访问失败(端口错误)。

因此,建议将访问请求改写为带/的二级页面如 http://www.example.com/movie/。这样可以避免 HTTP 重定向,减少一次不必要的判断,降低不必要的负载。如果必须使用 HTTP 重定向时,请保证负载均衡的监听端口和后端服务器的监听端口相同。

标签: