我使用Catalyst编写了一个Web应用程序,它有很多表单,需要在https上运行.没有硬编码的URL,一切都使用$c->uri_for
或$c->req->uri
.使用通过http运行的开发服务器,在开发环境中一切都运行良好.
今天,当我继续部署应用程序时,我发现了一个问题.我们的生产环境目前正在设置,客户端浏览器通过HTTPS与F5负载均衡器通信,F5通过HTTP与内部网络上的Web服务器通信.
[浏览器] --- HTTPS ---> [F5] --- HTTP ---> [Web服务器]
现在,因为Web服务器只获取HTTP
请求,所以从HTTP开始生成所有URI.这意味着: