如何告诉 AWS 应用程序负载均衡器不要转发路径模式?
How to tell AWS application load balancer to not forward the path pattern?
我已将我的 AWS 应用程序负载均衡器配置为具有以下规则:
/images/*
转发到服务器 A (https://servera.com
)
/videos/*
转发到服务器 B (https://serverb.com
)
这是正确转发到各自的服务器。但是,我不希望负载均衡器将请求转发为 https://servera.com/images
& https://serverb.com/videos
。我只希望在没有路径模式的情况下命中各个服务器,如 https://servera.com
& https://serverb.com
(请求中没有路径模式)。
我不想为此修改我的请求参数或更改我的服务器端代码。有什么方法可以告诉应用程序负载均衡器不要转发路径模式?
Is there a way I can tell the application load balancer to not forward the path patterns?
不,没有。它使用模式来匹配请求,但不会修改请求。
I don't want to modify my request parameters or change my server side code for this.
你必须改变一些东西。
您不必更改实际的 代码。 如果您确实需要此行为,您应该能够使用网络服务器 配置来完成它 -- 在 Web 服务器将请求传递给应用程序之前重写内部路径应该是 Nginx、Apache、HAProxy 或任何实际侦听实例的相对简单的重新配置。
此外,在我看来,您希望服务器响应与浏览器请求的路径不同的路径,这是在给自己添麻烦。这样的配置往往会使确保正确的测试结果和正确处理相对和绝对路径变得更加困难,因为应用程序将对浏览器正在请求或需要请求的内容有不准确的内部表示。
我已将我的 AWS 应用程序负载均衡器配置为具有以下规则:
/images/*
转发到服务器 A (https://servera.com
)/videos/*
转发到服务器 B (https://serverb.com
)
这是正确转发到各自的服务器。但是,我不希望负载均衡器将请求转发为 https://servera.com/images
& https://serverb.com/videos
。我只希望在没有路径模式的情况下命中各个服务器,如 https://servera.com
& https://serverb.com
(请求中没有路径模式)。
我不想为此修改我的请求参数或更改我的服务器端代码。有什么方法可以告诉应用程序负载均衡器不要转发路径模式?
Is there a way I can tell the application load balancer to not forward the path patterns?
不,没有。它使用模式来匹配请求,但不会修改请求。
I don't want to modify my request parameters or change my server side code for this.
你必须改变一些东西。
您不必更改实际的 代码。 如果您确实需要此行为,您应该能够使用网络服务器 配置来完成它 -- 在 Web 服务器将请求传递给应用程序之前重写内部路径应该是 Nginx、Apache、HAProxy 或任何实际侦听实例的相对简单的重新配置。
此外,在我看来,您希望服务器响应与浏览器请求的路径不同的路径,这是在给自己添麻烦。这样的配置往往会使确保正确的测试结果和正确处理相对和绝对路径变得更加困难,因为应用程序将对浏览器正在请求或需要请求的内容有不准确的内部表示。