【问题标题】:Pass through server / proxy通过服务器/代理
【发布时间】:2011-01-22 13:20:57
【问题描述】:

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

Client -> Proxy Type Server -> Web Server.

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

Client <- Proxy Type Server <- Web Server

如果它让生活更轻松,这是一个图表:

如果只是简单的 GET 请求没问题,但我不确定如果客户端发布数据它会如何工作。我希望有人能在这方面给我建议。如果可以的话,谢谢!

【问题讨论】:

  • @Bruce 我们可以知道你想要这样一个结构的原因吗?

标签: php ruby-on-rails linux apache


【解决方案1】:

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

你是在问如何设置这样的东西吗?

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

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

您的意思是说客户端是POSTing 到“代理服务器”上的PHP 或 Ruby 脚本,而不是像 Squid 或阿帕奇的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;

【讨论】:

  • 嗨乔希,是的,但我需要在发送给客户之前访问结果。
  • 访问结果需要什么?你需要对结果做什么?您可以编辑您的问题并更具体吗?谢谢。
  • 嗨乔希,抱歉不能编辑,但我想通过添加图像我让它更明显。但客户请求网站。代理服务器完成了获取请求的工作,但我希望能够查看结果,甚至可以在发送回客户端之前对其进行调整。这有帮助吗?
  • 您可以使用问题下方的“编辑”链接进行编辑。你想做什么样的解析?让我知道,我可以告诉你怎么做。
  • 嗨 Josh,好的,所以 Curl 就是答案!!。我会试一试。非常感谢。
猜你喜欢
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 2019-07-02
  • 1970-01-01
  • 2013-05-09
  • 2016-03-24
  • 1970-01-01
相关资源
最近更新 更多