【发布时间】:2012-07-07 02:01:09
【问题描述】:
我有戏!需要使用 HTTP 和 HTTPS 的应用程序。该应用程序在代理服务器(使用 Apache)后面运行,该代理服务器将 Web 请求转发到播放应用程序。
代理将一个端口用于 HTTP 请求,而另一个端口用于 HTTPs 请求。请注意,代理上的端口不与 Play 应用程序使用的端口相同(这是由于提供商的限制!)。
Play 应用程序使用“标准”端口 9000 用于 HTTP,9443 用于 HTTP。代理在 8080 端口接收 HTTP 请求并将其转发到 Play 的 9000 端口。代理在 8090 端口接收 HTTPs 请求并将它们转发到 Play 的 9443 端口。
我的问题是,当我使用 secure() 方法使页面出现在 Play 中时,Play 的逻辑会导致应用程序尝试使用 9443 作为 HTTPS 的端口。这会导致请求丢失,因为代理正在使用不同的端口。
当我想从 HTTP 切换到 HTTP 时,似乎也会发生同样的情况。我似乎无法让系统转到代理使用的端口。
不知何故,我需要让系统转到代理服务器已知的端口,而不会搞砸我的路由。有没有办法做到这一点?
提前感谢任何帮助/见解。
【问题讨论】:
-
您是将应用程序部署到系统还是作为独立游戏运行?还是玩 1.X 还是 2.X
-
其实我以为单机是运行Play的唯一方式。还有其他方法???无论如何:当前应用程序正在专用机器上运行 Play 1.2.4。我正在使用 Play 命令行,所以我猜它是独立的。我将在 Play v2 上运行未来的应用程序,他们将需要解决相同问题的方法,因此希望您提出的任何答案都可以在以后的 Play 版本以及 v1.2.4 中使用...
-
好的,这似乎是一个配置问题。首先,您是否尝试过迁移到 2.X?这就是我正在使用的东西,并且从我可以看到 play 不向后兼容?
-
我打算在未来的项目中使用 v2.0,但由于各种原因我不能在这里(主要是:我有很多用户,并且我最初在升级时遇到的问题使得它太冒险了现在)。你为什么不告诉我你为 2.0 做了什么。配置要求可能没有改变,如果他们改变了,我将需要你的解决方案用于未来的项目。
标签: https playframework