基本上,我有一些服务。我想将每个带有前缀“/secured”的请求转发到server1端口80,并将所有其他请求转发到server2的端口80。问题是在server1上,我正在运行接受不带“/secured”前缀的请求的服务。换句话说,我想将每个请求(例如“http://example.com/secured/api/getUser”)作为“http://example.com/api/getUser”转发到server1(从请求的路径中删除/保护)。
使用AWS ALB,当前请求以http://example.com/secured/api/getUser的形式发送;这迫使我更新server1的代码,以便该代码处理带有/secured前缀(看起来不太好)的请求。
有什么简单的方法可以解决ALB问题吗?
谢谢。
最佳答案
我遇到了同样的问题,正如Mark指出的那样,您可以在服务器上使用反向代理并执行以下操作(这是Nginx配置):
server {
listen 80 default_server;
location /secured/ {
proxy_pass http://localhost:{service_port}/;
}
}
这将剥除/secured部分并将其他所有内容代理到您的服务。只要确保在服务端口后面有尾随/即可。
关于amazon-web-services - 创建AWS Application Load Balancer规则,该规则可修剪请求的前缀,而无需使用其他反向代理,例如nginx,httpd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39317685/