我有一台运行 Apache/PHP 服务器的 Web 服务器(我们称之为 C1),并且它已进行端口转发,因此我可以从任何地方访问它。但是,Web 服务器 LAN 中还有另一台计算机也运行着 Apache 服务器(我们称之为 C2)。我无法更改端口转发,也无法更改 Apache 服务器(即安装自定义模块)。
有没有办法在 C1 目录中访问 C2?(例如,访问 www.website.org/random_dir 将允许我浏览 C2 apache 服务器的根目录。)
我尝试尽可能少地改变配置/其他内容(例如激活模块等)
有可行的解决方案吗?
答案1
答案2
您可以在 C1 中的文件夹中放置一个脚本,该脚本使用 curl 从 C2 获取信息。当您访问 www.website.org/random_dir 时,通过将其命名为 index.php,您将获得您的行为。
但是,要访问其他文件或文件夹,您必须将它们作为变量传递,例如:www.website.org/random_dir?folder=another_folder/subfolder&file=my_file
该解决方案能满足您的需求吗?
答案3
反向代理就是您要执行的操作的名称。Apache 支持它。
反向代理是指 Web 服务器将 HTTP 请求或 URL 转发到第二个 Web 服务器(可能在途中对其进行修改),收集该第二个 Web 服务器的响应,并传递结果(可能在返回途中修改结果)。
这是一个很好的起点。如果有时间,我会用一些例子来更新这个答案。
我要提醒您:反向代理非常适合静态内容和页面 URL 未“硬编码”在任何动态或 JavaScript 生成内容链接中的内容。当您拥有 Web 应用程序或具有自己的内置 Web 服务器的应用程序(例如 Subsonic 或 uTorrent 的远程访问)时,有时您可能会遇到 Web 应用程序生成的链接指向与您反向代理的位置不同的位置的情况。这就是重写模块发挥作用的地方,并且可能会变得混乱。并非所有 Web 应用程序都可以成功进行反向代理。