从 Web 上的本地服务器重定向 HTTP 流量

从 Web 上的本地服务器重定向 HTTP 流量

我有一台运行 Apache/PHP 服务器的 Web 服务器(我们称之为 C1),并且它已进行端口转发,因此我可以从任何地方访问它。但是,Web 服务器 LAN 中还有另一台计算机也运行着 Apache 服务器(我们称之为 C2)。我无法更改端口转发,也无法更改 Apache 服务器(即安装自定义模块)。

有没有办法在 C1 目录中访问 C2?(例如,访问 www.website.org/random_dir 将允许我浏览 C2 apache 服务器的根目录。)

我尝试尽可能少地改变配置/其他内容(例如激活模块等)

有可行的解决方案吗?

答案1

您可以在 C1 上放置一个脚本,将您的请求转发到 C2 并显示其响应。这可以使用 Web 代理来实现。

尝试安装代理服务器或者php-代理作为第一步,看看其中一个是否符合您的需求。

使用代理,记得通过其内部 IP(对 C1 可见)调用 C2。

答案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 应用程序都可以成功进行反向代理。

相关内容