使用 apache 反向代理重定向/重写 URL

使用 apache 反向代理重定向/重写 URL

我有一个问题不知道如何解决。我有一台服务器用于反向代理,另一台服务器用于 apache2 web 服务器上的 wiki 托管。

wiki 访问是通过反向代理(安全增强等)提供的,并且 RP 是唯一经过 NAT(Internet 访问)的。

我的 wiki 仅监听 URL“https://wiki.mylab.lab”(无法更改)。但用户的 URL 访问必须是“https://dtd-wiki.xx.yyy.zzzz.com”

我必须使用 RP 将“https://dtd-wiki.xx.yyy.zzzz.com”重定向/重写/传递到“https://wiki.mylab.lab”,但我不知道该怎么做。

目前,我的 RP 配置为通过 URL“https://wiki.mylab.lab”提供对 wiki 的访问。

为了便于理解,这里有一个示意图

我不知道是否必须使用 mod_rewrite 或其他 mod。我迷失在研究中,所以我在这里问这个问题。

谢谢您的帮助。

编辑:对于我的 wiki,HBruijn 的答案有效,但对于其他服务(moodle 服务器),我有这个:

GET https://dtd-elearning.xx.yyy.zzzz.com/login/index.php [HTTP/1.1 200 OK 75 ms]
GET https://moodle.mylab.lab/theme/yui_combo.php [250 ms]
GET https://moodle.mylab.lab/theme/styles.php/clean/1461935313/all [0 ms]
GET https://moodle.mylab.lab/theme/yui_combo.php [0 ms]
GET https://moodle.mylab.lab/lib/javascript.php/1461935313/lib/javascript-static.js [0 ms]

index.php 很好,但其他 php、js 和其他文件从错误 URL(mylab.lab)加载。我可以使用 Apache 反向代理修复该问题吗?编辑:根据 moodle 文档,我必须更改我的 moodle 的配置并将外部 URL 放入 config.php 文件中。

答案1

除非我完全误读了你的问题和图表,否则你之前和之后的唯一区别就是 ServerName,所有其他信息都已经存在了......

这使得你的反向代理的最终结果类似于

<VirtualHost *:443> 
  ServerName dtd-wiki.something.example.com
  ProxyPass / https://wiki.mylab.lab
  ProxyPassReverse / https://wiki.mylab.lab
  #Other options
</VirtualHost>

相关内容