【发布时间】:2016-10-23 14:17:15
【问题描述】:
我已经成功(据我所知)创建了一个从面向互联网的服务器到另一个非面向互联网的服务器的 httpd 反向代理。我还使用 haproxy 创建了一个路由表,将特定请求路由到特定端口上的特定其他服务器。我们分别称它们为服务器 A、B 和 C,其中 C 表示要路由到的服务器和端口列表。
由于我们的服务器架构,这是能够在预期服务器上向互联网提供数据的唯一途径。
当我访问 https serverA.com/jira 的站点时,我让 A 使用 http serverB/jira 发送到 B,它基于 /jira 路由到 C 中的服务器,该服务器在 http serverC:somePort 上托管我们的内部 jira 实例
我从 jira 获得了一个页面,但它没有格式化,并提到该页面是一个损坏的链接。进入 Firefox 的调试器,我在网络选项卡中看到 jira 页面返回了 404 错误,但是由于收到的 HTML 页面的内容,然后放置了其他几个 GET,它们都得到 404,这是有道理的,为什么页面没有格式化.
我的主要问题是:httpd 使用基于 /jira 的 Location 块但是当发送额外的 GET 请求时,它们被发送到 https serverA.com/additionalFiles.(css, js, etc.)服务器将无法正确反向代理。有没有办法将传入 html 页面中的所有请求更改为 jira/additionFiles 而不是 additionalFiles 或者让 httpd 服务继续为其余依赖项提供反向代理(我知道 http 是无连接的)?如果不是,最佳做法是什么?
我的第二个问题与第一个问题同时出现,为什么我在初始页面加载时看到 404 以及如何将其更改为 200?
【问题讨论】:
标签: apache reverse-proxy httpd.conf haproxy