通过服务器/代理

时间:2011-01-22 13:20:58

标签: php ruby-on-rails linux apache

我正在寻找有关如何做到这一点的建议。我想让服务器位于客户端和实际服务器之间。例如:

Client -> Proxy Type Server -> Web Server.

因此作为回报,Web服务器会将结果传递给代理服务器,然后代理服务器将结果返回给客户端。例如:

Client <- Proxy Type Server <- Web Server

这是一个让生活更轻松的图表:

A diagram

如果只是简单的GET请求不是问题,但我不确定如果客户端发布数据它将如何工作。我希望有人可以就此提出建议。谢谢你,如果可以的话!

1 个答案:

答案 0 :(得分:1)

我不确定您的问题是什么...如果您在客户端和应用程序服务器之间设置了代理服务器,那么它就是:代理服务器。因此,它会将请求代理到应用程序服务器,就像您在图表中所示。如果客户端POST的数据到代理,代理服务器将POST与应用程序服务器相同的数据并将响应返回给客户端...

您是否在询问 如何设置此类内容?

编辑:我将在这里猜测......

  

如果只是简单的GET请求不是问题,但我不确定如果客户端发布数据它将如何工作

你的意思是客户端是POST 一个PHP或Ruby脚本在“代理服务器”上,而不是像实际的代理服务器那样鱿鱼还是阿帕奇的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;