我对
PHP不是很专业.我想知道如何在2个Web服务器之间进行通信.为清除,(从第1台服务器)运行远程服务器上的功能(查询).并将结果返回给第一台服务器.
实际上主题是:
Web服务器(1)—————-> Web服务器(2)—————>数据库服务器
Web服务器(1)< ---------------- Web服务器(2)< ---------------数据库服务器 Query Function()将仅位于Web Server(2)上.然后我需要从Web Server(1)远程运行该查询函数(). 这叫什么?有可能吗?
是.
我能想到的一个好方法是通过URL向第二台服务器发送请求.在GET(或POST)参数中,指定要调用的方法,以及(为了安全性)某种随时间变化的散列.那里的哈希确保没有第三方可以在第二台服务器上任意运行该功能.
要发送请求,您可以使用cURL:
function get_url($request_url) { $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$request_url); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); $response = curl_exec($ch); curl_close($ch); return $response; }
这会发送一个GET请求.然后你可以使用:
$request_url = 'http://second-server-address/listening_page.PHP?function=somefunction&securityhash=HASH'; $response = get_url($request_url);
在您的第二台服务器上,设置listen_page.PHP(当然是您喜欢的任何文件名),它检查GET请求并验证请求的完整性(即散列,正确和有效的参数).