从不同的网络获取webdata

时间:2011-08-24 10:05:16

标签: php mysql proxy webpage mod-proxy

假设有3台服务器( A B C ):

  • 服务器 A 只能访问服务器 B A 无法直接访问 C 。< / LI>
  • B 可以访问 C
  • A C 位于单独的网络中。

B C 都是http服务器,但只有 C 才能运行PHP。

我必须使用PHP从 C 中的 A 中获取MySQL服务器的一些信息,是否可以这样做?

我无法将PHP安装到 B

是否可以编写一个将在 C 中运行的PHP页面并将结果返回 B 并返回 A

3 个答案:

答案 0 :(得分:1)

配置B充当代理。如果它运行Apache,那么请参阅proxypass directive

答案 1 :(得分:1)

你需要让B充当代理人。您只需将收到的请求直接路由到C。

概述...并且您希望获取位于C到A的信息。

BEFORE

(HTTP,PHP) A -----> B (HTTP,PHP)
(HTTP,PHP) A --||   C (HTTP,MySQL)
(HTTP,PHP) B -----> C (HTTP, MySQL)

之后

(HTTP,PHP)            A -----> B (HTTP->ProxyPass,PHP)
(HTTP,PHP)            A --||   C (HTTP,MySQL)
(HTTP->ProxyPass,PHP) B -----> C (HTTP, MySQL)

A->B(Proxied to)->C

http://httpd.apache.org/docs/2.1/mod/mod_proxy.html#proxypass

文档

假设本地服务器具有地址http://example.com/;然后

ProxyPass /mirror/foo/ http://backend.example.com/

将导致http://example.com/mirror/foo/bar的本地请求在内部转换为http://backend.example.com/bar的代理请求。

答案 2 :(得分:0)

我不明白你的意思是'来自A的C中的mysql服务器'。我假设你的意思是将MySQL数据从A传输到C,因为A不是HTTP服务器(你提到的只有B和C)。您可以将随机端口(例如B上的3310)路由到A上的端口3306,这样您就可以直接从C访问A的MySQL服务器(您必须在A上启用远程访问)。我假设您拥有3台服务器的管理员权限。