我想将我的网站所做的API调用分离到另一个安装,因为网站已经变得很大并且通过将所有内容组合在一起而变得越来越多。我想知道有什么方法可以使两个站点在同一台服务器上进行通信。
我原本以为我可以让面向客户的网站只通过CodeIgniter的自定义加载器包含API网站中的模型,但我目前倾向于希望API网站利用Laravel,这显然会废弃直接加载它们。
目前我有一些使用CURL来POST请求的调用,这是唯一的方法吗?我希望放弃HTTP调用以支持更直接的东西。
答案 0 :(得分:1)
正如我在对这个问题的评论中所说,我绝对不是这方面的专家,但我最初的想法是可以用IPC风格的东西来完成,也许使用名称管道。
PHP在其POSIX和过程控制功能中允许这样做。只需使用posix_mkfifo
创建命名管道,然后您就可以使用fopen
,fread
等(如果需要,还可以使用stream_*
函数)写入和读取管道。但是,我不确定它对单个编写器和多个读者有多好,而且对于替换目前的HTTP内容,代码也可能发生了很大变化。
所以下一个可能性是,如果你想坚持使用HTTP(并且不介意形成HTTP请求和标头等的小开销),那么你应该确保你的服务器使用本地套接字来减少运输成本。如果您的网站的域名与服务器本身的主机名相同,那么这应该已经发生(因为您的/etc/hosts
文件将有任何条目将主机名指向127.0.0.1
)。但是,如果没有,你需要做的就是添加这样一个条目,据我所知,它会起作用。在最糟糕的情况下,您可以在代码中对127.0.0.1
进行硬编码(并确保您的网络服务器正确响应这些请求),当然。