https - Traefik 反向代理后的 Plone 的混合内容问题
问题描述
我刚刚尝试安装基于 Docker 的 Plone,它作为反向代理在 Traefik 后面运行,但是当我从 Web 浏览器访问它时,我在控制台上收到如下错误:
混合内容:“ https://new.mydomain.id/ ”页面通过 HTTPS 加载,但请求的样式表不安全“ http://fonts.googleapis.com/css?family=Roboto:400,300,700 ”。此请求已被阻止;内容必须通过 HTTP 提供
混合内容:“ https://new.mydomain.id/ ”处的页面通过 HTTPS 加载,但请求了不安全的样式表“ http://new.mydomain.id/++resource++plone-admin-ui。 .css '. 此请求已被阻止;内容必须通过 HTTPS 提供。
是否可以传递任何特殊的环境变量以使用 HTTPS 进行所有通信?
以前,我在同一个反向代理后面安装了 OJS3 Web 应用程序,并得到了相同的错误消息,但通过将环境变量传递HTTPS=on
给容器来解决。
我希望 Plone 也有类似的环境变量。我使用 Traefik 1.7.16
解决方案
您需要正确配置代理重写 URL,包括虚拟主机怪物 (VHM) 部分。这样,Zope 的 VHM 可以正确地重写请求。
可以在此处找到 Nginx 的示例:
基本上,重写 URL 应该如下所示:
Protocol plus domain or address of the proxied server
| Protocol of frontend server
| | Domain of frontend server
| | | Port of frontend server
| | | | Path to Plone site root
V V V V V
http://plone/VirtualHostBase/http/yoursite.com:80/Plone/VirtualHostRoot/
有关 VHM 的更多信息:https ://zope.readthedocs.io/en/latest/zopebook/VirtualHosting.html
推荐阅读
- css - 支持 gulp 和新创建的 CSS 问题
- python - 如何从输出中获取“数组”和双括号?
- python - 填充曲线下的区域直到 ax 值
- python - 如何使 QtGui.QGraphicsScene additem() 仅绘制添加的项目?
- ansible - 如何动态地将游戏中的主机设置为 Ansible 中 vars_file 中的变量
- azure-pipelines - Azure Pipelines YAML 管道在每个环境的提交中的差异
- javascript - 使用 JavaScript 访问嵌套的 JSON 值
- teamcity - 如何在 Jetbrains Team City 的 Pending changes 中获取文件列表?
- angularjs - 错误 TS2339 & TS2304 属性 'cordova' 在类型 'Window & typeof globalThis' 上不存在
- electron - 如何在electron的render过程中检索当前BrowserWindow