ПОЛУЧИТЬ вебданные из другой сети - PullRequest
1 голос
/ 24 августа 2011

Предположим, что есть 3 сервера ( A , B и C ):

  • Сервер A может обращаться к серверу B , а A не может получить доступ к C напрямую.
  • B может получить доступ C .
  • A , C находятся в отдельной сети.

Оба B и C являются http-серверами, но только C может работать с PHP.

Мне нужно использовать PHP для получения информации с сервера MySQL в C из A , возможно ли это сделать?

Я не могу установить PHP на B .

Можно ли написать страницу PHP, которая будет работать в C и вернуть результат в B и обратно в A ?

Ответы [ 3 ]

1 голос
/ 24 августа 2011

Вам нужно получить B, чтобы действовать как прокси. Идея состоит в том, что вы просто перенаправляете полученные запросы в B непосредственно в C.

Обзор ... и вы хотите получить информацию от C до A.

до

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

* После 1008 * (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 Docs Предположим, что локальный сервер имеет адрес http://example.com/;, затем ProxyPass /mirror/foo/ http://backend.example.com/ приведет к тому, что локальный запрос для http://example.com/mirror/foo/bar будет внутренне преобразован в прокси-запрос к http://backend.example.com/bar.

1 голос
/ 24 августа 2011

Настройка B для работы в качестве прокси. Если он запускает Apache, см. Директиву proxypass

0 голосов
/ 24 августа 2011

Я не понял, что вы имели в виду под "с сервера MySQL в C от A". Я предполагаю, что вы имеете в виду передачу данных MySQL из A в C, поскольку A не является HTTP-сервером (вы упомянули только B и C). Вы можете направить случайный порт, скажем, 3310 на B, на порт 3306 на A, таким образом, вы сможете получить доступ к серверу MySQL A напрямую из C (хотя вам придется включить удаленный доступ на A). Я предполагаю, что у вас есть права администратора на 3 серверах.

...