1

我有一个同步器进程,它对 Twitter、Facebook 等进行 curl HTTPS 调用,为我们的用户收集数据并更新数据库(存储在本地文件系统中)。在同一系统上运行着一个 HTTP 服务器,它查询这个数据库并在请求时将结果返回给用户。

问题是 sycer 进程由于调用 Twitter、Facebook 等 API 时发生 SSL 协商而消耗了过多的 CPU/IO。这使用户体验有点慢。所以我希望这个 SSL 协商发生在另一个运行 HTTP 服务器的系统上。而且我不能将同步器进程带到外面,因为它需要本地文件系统访问来更新数据库。

所以我正在考虑构建一种代理服务器。同步器进程将对代理服务器进行 HTTP 调用。代理服务器将对 Twitter、Facebook 等进行 HTTPS 调用,并将结果返回给同步器进程。

是否有任何软件为此而存在?如果已经存在某些东西,我不想重新发明轮子。

4

2 回答 2

0

如果满足以下条件,Stunnel几乎完全按照您的要求执行。

  • 每个服务都必须运行一个 stunnel 实例(从 inetd 或在独立的类似守护进程的模式下)。
  • 运行 cURL 的系统必须手动将目标服务的主机名解析为运行 stunnel 的主机的 IP 地址(例如/etc/hosts)才能使用它。

我以类似的方式使用 stunnel 连接到使用 SSL 和支持 SSL 的客户端的 IRC 服务器。它就像一种魅力,需要注意的重要一点是 3.x 和更新版本之间的不兼容。如果您正在计划一个新系统,您可能应该使用新系统。

于 2012-06-29T14:47:41.093 回答
0

我最终使用 nodejs 编写了一个简单的代理服务器。需要调用 HTTPS api 的客户端会将 JSON 格式的所有详细信息传递给此代理服务器。该代理服务器将依次调用 HTTPS api 并将结果返回给客户端。

于 2012-07-16T05:45:59.233 回答