Apache 将请求转发到另一台服务器

标签 apache port forward

我希望 apache 将来自一台服务器的请求转发到另一台服务器。这是完整的场景:

有3台服务器:

  • 机器 A - IP:A.A.A.A - 想要在机器 C 上调用 API 的客户端机器。
  • 机器 B - IP:B.B.B.B - 中间机器
  • 机器 C - IP:C.C.C.C - 托管 API 的机器。

  • API URL:http://机器c: 8000 /v1/客户/....

    连接状态:
  • 机器 A -> 机器 B:端口 80 上的 Telnet - 好
  • 机器 B -> 机器 C:端口 8000 上的 Telnet - 好
  • 机器 A -> 机器 C:端口 8000 上的 Telnet - 错误

  • 理想情况下,我想从机器 A 调用机器 C 上的 API,但由于我在 A 和 C 之间没有直接的 n/w 连接,因此我必须采用这条路线。

    所以我想在机器 B 上设置 apache 服务器,这样:
    从机器 A,进行 API 调用 -
    http:// B机:80 /v1/customer/.... 然后将其转发到端口 8000 上的机器 C。
    C 处理请求并将响应发送回 A。

    任务可能很简单,但我是这个 apache 的新手,如果有人能告诉我解决方案,这对我明天的截止日期会很好:)

    谢谢!

    最佳答案

    经过一些研究和谷歌搜索进一步能够做到这一点。这是我所做的 - 可能对那些面临同样问题的人有所帮助:

    在机器 B 的 httpd.conf 文件中添加以下内容:

    ProxyPass/v1/customer C.C.C.C:8000/v1/customer

    ProxyPassReverse/v1/customer C.C.C.C:8000/v1/customer

    因此,如果来自客户端(机器 A)的调用是 B.B.B.B/v1/customer,那么它将是
    转发给 C.C.C.C:8000/v1/customer

    ProxyPass 需要 mod_proxy 模块。

    关于Apache 将请求转发到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10100830/

    相关文章:

    php - 数据库查询后将变量从一个 PHP 页面发送到另一页面

    forward - 将域名映射到服务器上的一个空间

    apache - 是否可以在 xampp localhost 中安装 git?

    node.js - 在 godaddy 服务器上托管时,nodejs 在所有端口上超时

    azure - 无法打开 Azure VM 端口

    networking - docker 仅在主机上公开端口

    linux - Apache Directory Studio Replication 仅连接到树的第一层

    windows - 在 Windows 上安装 Hadoop?

    apache - 尾随斜杠导致错误代码 500

    c++ - std::forward 与 std::move 的用法