我将AWS中的应用程序负载均衡器用作API网关:用于将请求转发到AWS中运行的不同应用程序。我已经将它配置为同时支持HTTP和HTTPS。HTTPS监听器包含请求转发的所有逻辑规则。HTTP监听器配置了一条规则:将所有流量重定向到HTTPS监听器({host}:443/#{path}?#{query})并返回301。
HTTPS工作得很好。HTTP可以很好地处理GET请求。但是我发现,当重定向到HTTPS时,对HTTP的POST请求会被转换为GET请求,这显然以404结尾。
我在网上发现这个问题处于301状态(https://rtfm.co.ua/en/http-redirects-post-and-get-requests-and-lost-data/#The_root_cause_3xx_redirects_and_HTTP_RFC)。但不幸的是,AWS ALB规则中没有重定向请求并返回307而不是301的选项。
有人知道我如何解决这个问题吗?谢谢!
发布于 2020-01-14 01:28:43
我们有一个类似的设置。我们所做的是让HTTP请求通过应用程序服务器,在那里应用程序检测HTTP协议,并执行基于软件的301重定向作为对HTTPS的POST。这将专用协议处理从ALB转移到应用程序本身。效果很好。以这种方式设置任何应用程序服务器都很容易。
发布于 2021-05-08 20:24:46
当启用http到https重定向时,我也遇到了同样的问题。只需禁用自动https重定向并直接命中https路由即可。找不到除此之外的任何替代解决方案。
https://stackoverflow.com/questions/59719772
复制相似问题