绕过站点内容中任何绝对 url 的反向代理服务器的 HTTPS 实现

Posted

技术标签:

【中文标题】绕过站点内容中任何绝对 url 的反向代理服务器的 HTTPS 实现【英文标题】:Bypass HTTPS implementation of reverse proxy server for any absolute urls in site content 【发布时间】:2017-04-15 00:07:53 【问题描述】:

我有一个反向代理服务器 F5 站在Apache Web 服务器的前面,它托管我的应用程序 - http://example.net/documents/。

我的组织反向代理服务器 F5 是我无法访问的,因为它由管理员管理,他们最近为我的网站实施了 HTTPS,这将我的网站从 HTTP 更改为 HTTPS

除了我的整个网站内容也更改为 HTTPS,包括任何 作为网站内容一部分的绝对 HTTP 外部 URL 引用也更改为 HTTPS 之外,一切都运行良好。所以,我现在最关心的是保留我的网站内容的原始协议(特别是我的网站内容下的外部链接引用,如 jquery 等)。

我很困惑如何解决这个问题,因为我无法使用反向代理服务器。 是否可以在 Apache 网络服务器上通过绕过反向代理服务器的 HTTPS 实现来保留任何绝对 url 的原始协议?我不是这方面的专家。请帮忙!

【问题讨论】:

【参考方案1】:

首先:您当然应该始终使用 https 来处理所有事情。如果您的站点可通过 https(通过 F5)访问,并且您通过 http:// 引用 js 文件,许多浏览器会抛出有关混合和不安全内容的警告。特别是 jquery 和所有其他 javascript 模块应该可以通过 https 完全可用,所以我在这里真的没有看到问题?

第二,不,您将无法绕过 F5 负载均衡器的内容重写;你当然可以破解一些通过 javascript 或类似的东西动态连接 url 的东西,但这是 hacky 并且可能会失败。

如果您提供一个实际示例说明您在哪里遇到 https 问题,也许我可以更好地帮助您?

【讨论】:

以上是关于绕过站点内容中任何绝对 url 的反向代理服务器的 HTTPS 实现的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 配置反向代理后,页面中取绝对URL地址的问题显示代理端口

nginx配置反向代理解决vue跨域问题

使用 iframe 在 SSL 站点上显示具有绝对 URL 的非 SSL 内容 [重复]

C# 反向代理(绕过 NAT/防火墙)

正向代理与反向代理的差别

宝塔面板反向代理快速设置