服务器如何从运行多个实例的另一台服务器中识别php脚本实例?
我有两台服务器。主服务器充当server2的web服务,而server2正在与客户端通信 Server2运行一个php脚本,从客户端获取一些数据,然后将其发送到主服务器,然后读取主服务器上某个页面的内容(根据客户端的数据生成),还读取从主服务器返回的http头,以获取cookie值 服务器2代码:服务器如何从运行多个实例的另一台服务器中识别php脚本实例?,php,http,proxy,parallel-processing,multiple-instances,Php,Http,Proxy,Parallel Processing,Multiple Instances,我有两台服务器。主服务器充当server2的web服务,而server2正在与客户端通信 Server2运行一个php脚本,从客户端获取一些数据,然后将其发送到主服务器,然后读取主服务器上某个页面的内容(根据客户端的数据生成),还读取从主服务器返回的http头,以获取cookie值 服务器2代码: some code ... $postdata = http_build_query( array( 'var1' => 'value1', 'var
some code ...
$postdata = http_build_query(
array(
'var1' => 'value1',
'var2' => $_POST["var2"],
'var3' => $_POST["var3"]
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
file_get_contents("http://www.mainserver.com", false, $context);
$cookieContent = getCookieContent($http_response_header);
SetCookie('myCookie', $cookieContent, $loginTime, '/', $url, false);
more code ....
主服务器不运行php脚本,但会按预期写入cookie值。
cookie值是唯一的,并根据server2传递的客户端详细信息生成
因此,基本上,server2充当“代理”(或反向代理),应该为每个客户机设置他从主服务器获得的唯一cookie值
我的问题是:
我的逻辑行得通吗?我知道它适用于一个客户端,但当多个客户端访问服务器2上的同一脚本时会发生什么?主服务器如何知道将带有正确唯一值的答案返回到server2上的正确php实例
换句话说,客户端是否有可能向server2发送请求,server2是否会返回一个具有唯一值的答案,该值属于不同的客户端?那么,您似乎想要实现自己的反向代理系统 基本上,您的代理(示例中的server2)需要记住所有需要执行的操作
- 将客户端请求传递给服务器
- 服务器生成所需页面后,回答客户机
- 处理服务器不应答的情况(即请求超时)
- 一旦服务器最终生成最终回复,使用它重新创建最终回复
- 处理来自客户端的请求取消
$context
变量应包含客户端传递的HTTP头,以及一些到代理的反向链接,服务器将使用这些反向链接将其响应定向到代理,而不是客户端
反过来,服务器将处理该请求,就像它是由客户机直接发送的一样。但是,一旦请求得到处理,它将使用反向链接来回答代理
代理将从服务器获得响应,并使用存储的请求上下文来决定如何处理结果。客户端可能同时丢弃了请求,在这种情况下,结果将被忽略。否则,它将使用请求上下文将响应传递给客户端
尽管如此,服务器提供的唯一ID是不必要的,因为服务器永远不会直接与客户机通信。重要的是,代理和服务器可以清楚地识别他们正在处理的请求
简而言之,唯一需要的是服务器和代理之间的请求标识符
您仍然可以基于Cookie、IP地址或任何其他方式为每个客户端生成唯一的ID,但这与无代理客户端-服务器体系结构中的会话处理没有什么不同。您似乎想实现自己的反向代理系统 基本上,您的代理(示例中的server2)需要记住所有需要执行的操作
- 将客户端请求传递给服务器
- 服务器生成所需页面后,回答客户机
- 处理服务器不应答的情况(即请求超时)
- 一旦服务器最终生成最终回复,使用它重新创建最终回复
- 处理来自客户端的请求取消
$context
变量应包含客户端传递的HTTP头,以及一些到代理的反向链接,服务器将使用这些反向链接将其响应定向到代理,而不是客户端
反过来,服务器将处理该请求,就像它是由客户机直接发送的一样。但是,一旦请求得到处理,它将使用反向链接来回答代理
代理将从服务器获得响应,并使用存储的请求上下文来决定