Проход через сервер / прокси - PullRequest
2 голосов
/ 22 января 2011

Я ищу совет, как это можно сделать. Я хочу, чтобы сервер находился между клиентом и реальным сервером. Например:

Client -> Proxy Type Server -> Web Server.

Таким образом, взамен веб-сервер передает результаты прокси-серверу, который в свою очередь возвращает результаты клиенту. Например:

Client <- Proxy Type Server <- Web Server

Вот диаграмма, если она облегчает жизнь:

A diagram

Если бы это были просто простые запросы GET, то это не проблема, но я не уверен, как это будет работать, если клиент будет публиковать данные. Я надеюсь, что кто-то может посоветовать мне по этому вопросу. Спасибо, если можете!

1 Ответ

1 голос
/ 22 января 2011

Я не уверен, какой у вас вопрос ... Если вы настроите прокси-сервер между вашим клиентом и сервером приложений, то это будет просто прокси-сервер. Таким образом, он будет посылать запросы к серверу приложений, как показано на диаграмме. Если клиент POST s передает данные на прокси-сервер, прокси-сервер POST передает эти же данные серверу приложений и возвращает ответ клиенту ...

Вы спрашиваете как настроить что-то подобное?

РЕДАКТИРОВАТЬ: Я собираюсь сделать дикое предположение здесь ...

Если бы это были просто простые запросы GET, то это не проблема, но я не уверен, как это будет работать, если клиент будет публиковать данные

Вы имеете в виду, что клиент POST использует скрипт PHP или Ruby на «Прокси-сервере», а не фактический прокси-сервер, такой как Squid или Apache mod_proxy? Если да, то вы спрашиваете, как с помощью PHP отправить эти данные POST на сервер приложений? Если это ваш вопрос, вот ответ:

<?php

$application_server = '1.2.3.4'; // replace with IP or hostname of application server
$uri = $_SERVER['REQUEST_URI']; // you may need to change this, not sure from your question.

$curl = curl_init("http://{$application_server}{$uri}");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$_POST);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

$data = curl_exec($curl);

// do something with $data, transform it however you want...

echo $data;
...