16

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

有3台服务器:

  1. 机器 A - IP:AAAA - 想要在机器 C 上调用 API 的客户端机器。
  2. 机器 B - IP:BBBB - 中间机器
  3. 机器 C - IP:CCCC - 托管 API 的机器。

API URL: http:// 机器 c: 8000 /v1/customer/....

连接状态:

  1. 机器 A -> 机器 B:端口 80 上的 Telnet - 好
  2. 机器 B -> 机器 C:端口 8000 上的 Telnet - 好
  3. 机器 A -> 机器 C:端口 8000 上的 Telnet - 错误

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

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

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

谢谢!

4

1 回答 1

19

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

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

ProxyPass /v1/customer CCCC:8000/v1/customer

ProxyPassReverse /v1/customer CCCC:8000/v1/customer

因此,如果来自客户端(机器 A)的呼叫是 BBBB/v1/customer,那么它将被转发到 CCCC:8000/v1/customer

ProxyPass 需要 mod_proxy 模块。

于 2012-04-12T20:21:10.693 回答