【问题标题】:Apache configuration to present multiple local-only http sites as a single public https siteApache 配置将多个仅限本地的 http 站点呈现为单个公共 https 站点
【发布时间】:2011-03-02 21:58:29
【问题描述】:

我确信有一个简单的解决方案 - 但我一直在用 Apache 文档猛烈抨击似乎永远的东西......也许有人可以给我一个提示?

在 LAN 上,我有多个网站(我们应该假设它们具有不透明的实现),每个网站都在一个单独的域下运行......而且这些工作都很好。

我想通过 https 公开这些网站,但我只能访问一个合适的 IP 地址——因此最好使用 app1 主机名和 /app2/ 路径将 /app1/ 路径映射到内部站点到带有 app2 主机名的内部站点 - 这是我的目标。

我尝试过使用“Apache Module mod_proxy”——我尝试了 ProxyPass、ProxyPassReverse 和部分的各种组合——都遇到了同样的问题。 http://app1.example.com/ 的站点包含引用格式为“/submit.php”和“/base.css”的 uris 的页面 - 这些页面与多个 http 站点方案相关 - 但在公共 https 方案中是错误的需要多个根 - 由公共 URI 中的路径前缀标识。

确保正确翻译这些 URI 的最佳方法是什么? mod_proxy 适合这类任务吗?

【问题讨论】:

    标签: http proxy https apache2 reverse-proxy


    【解决方案1】:

    您需要 SNI,服务器名称标识。

    你想要实现的,是web服务器自己无法实现的,需要客户端nice,发送域名后才开始加密会话,否则是不可能的。

    这里有教程,techrepublic,祝你好运。

    【讨论】:

    • 我(强烈)怀疑是误会。我曾希望包括 URIS 来说明 - 但 stackoverflow.com 阻止我这样做。我在内部有网站app1.example.comapp2.example.com。我想将它们分别公开为ssl.example.com/app1ssl.example.com/app2。这都是关于 URI 翻译的 - 一个网络服务器肯定可以做到 - 原则上......不幸的是,我不知道神奇的配置语法。
    【解决方案2】:

    万一它帮助了其他人......

    我的最终解决方案是使用 mod_proxy 将请求从 SSL 服务器退回到我的内部服务器......但是,由于各种原因,在内部服务器所在的单独阶段转换 URI 会容易得多托管。我使用 mod_rewrite 去除了路径前缀——而且效果很好。

    遗憾的是,在 SSL 服务器的配置中没有明显的方法来做到这一点(如果我忽略了它,请纠正我)并且我浪费了很多时间来追求 mod_html_proxy - 这是相当严格的它会翻译的html。在任何情况下,最好在 Apache 中翻译选定的 URI,而不是让 Apache 翻译整个文档。

    【讨论】:

      猜你喜欢
      • 2010-12-17
      • 2021-12-03
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 2010-12-16
      相关资源
      最近更新 更多