Foswiki 背后的反向代理

Foswiki 背后的反向代理

我在本地计算机上安装了 Foswiki http://<localcomputer>:<localport>/foswiki:。

多年来它一直运行良好。这台计算机无法通过互联网访问。现在我想通过反向 Apache2 代理从互联网访问它。因此我有一个域名:foswiki.<mydomain.com>。在代理服务器上我有:

<VirtualHost *:443>
  ServerName foswiki.<mydomain.com>

  some SSL stuff

  ProxyPreserveHost On
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyRequests On
  ProxyPreserveHost On
  ProxyPass / http://<localcomputer>:<localport>/foswiki/
  ProxyPassReverse / http://<localcomputer>:<localport>/foswiki/
</VirtualHost>

使用外部计算机上的链接:https://foswiki.<mydomain.com>,我可以看到首页上的文字,但布局不正确。徽标未显示。我尝试了很多方法,但还没有找到正确的方法......

外部链接是 https。本地链接是 http。在源代码中,如外部 https 链接所示,有一些href="http://foswiki.<mydomain.com>/foswiki/bin/../pub/*"。请注意 http 而不是 https。这些 http:// 不起作用。

同一代理服务器的其他代理运行正常。它们重定向到 Foswiki 安装以外的其他计算机。

我错过了什么?

编辑:杰拉尔德给了我让代理与 Foswiki 一起工作的答案。见下文。

现在,我又遇到了一个问题。但我尝试自己解决这个问题。

答案1

Foswiki 有一个反向代理使用的文档

  • Foswiki 将检测X-Forwarded-Host标头并从此标头设置{DefaultUrlHost}。它仅在单个代理在线时才有效。多个代理跳转将破坏配置。
  • 如果 SSL 在代理处终止,Foswiki 将不会检测https://该协议。通过在初始连接中添加“?SSL=1”来覆盖此问题:https://mynewsite.com/Main/WebHome?SSL=1
  • 设置{DefaultUrlHost}protocol://hostname用户联系代理所使用的。
  • 设置{ForceDefaultUrlHost}1
  • 设置{Sessions}{UseIPMatching}0

所以:

tools/configure -save -set {DefaultUrlHost}='https://foswiki.<mydomain.com>'
tools/configure -save -set {ForceDefaultUrlHost}=1
tools/configure -save -set {Sessions}{UseIPMatching}=0

并添加?SSL=1到您的ProxyPass指令中。

相关内容