【问题标题】:Why is Apache https server is not sending the Port# in the URL?为什么 Apache https 服务器没有在 URL 中发送端口号?
【发布时间】:2014-06-05 16:57:58
【问题描述】:

我有一个在 Amazon Web 服务上运行的安全 (https:443) 应用程序 (AWS) 有 TOmcat7 和 Apache http 服务器。URL 看起来像这样 https://ama.its.com/service。这非常有效。

它们是在非标准 ssl 端口(如 "23456")上运行我们应用程序的 development AWS instances 的成本效益替代方案的新要求。所以 URL 现在变成了https://ama.its.com:23456/service。我的代码中有一个 Servlet 实现。当我执行"request.getRequestURL().toString();"时,它会返回不带端口#https://ama.its.com/service 的URL。这给我的应用程序带来了问题。我希望 URL 中包含端口号。

我用谷歌搜索了一下,我看到了this post。 Post 告诉 Apache 服务器正在屏蔽 PORT 并在没有端口的情况下重建 URL。该帖子建议解决从 Request 标头获取 URL 的方法,但我现在不想走那条路线,直到我发现它们是否可以解决它。如果发生了一些有趣的事情,我还查看了 Apache http 日志。我找不到任何可疑的东西。

他们有什么方法可以告诉服务器不要在 URL 中排除端口号吗?

【问题讨论】:

    标签: java apache tomcat ssl amazon-web-services


    【解决方案1】:

    当使用 443 以外的非标准 ssl 端口时,Apache HTTP 服务器会出现问题。发送 URL 时,端口会在请求对象中被删除。或者,从请求标头中获取 URL 是一个不错的选择。

    该选项不符合我的需求,因为我有一个网站供用户使用,但我在网站的 iframe 中显示的内容实际上是将数据加载到不同的 tomcat(即 AWS 服务器)上。所以基本上请求标头给出的是主 URL 的 URL,而不是在 iframe 内运行的网站的 URL。

    我有一个适合我的项目的解决方法,需要将网站的 URL 存储在 IFrame 中以从属性文件中获取并使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      • 1970-01-01
      • 2012-10-15
      相关资源
      最近更新 更多