我遇到了一个需要帮助的问题(我之前从未遇到过这个问题,我找不到任何先前的相关问题)。
php中的应用程序托管在名为01.example.com, 02.example.com
现在,有许多客户端使用此应用程序(用PHP编写的软件即服务),每个客户端都有自己的数据库托管在一个特定的服务器上 - 客户端数据库存在于01.example.com
和客户端B数据库存在于02.example.com
(哪个客户端属于哪个服务器存储在共享数据库中)
我想创建一个包含http://HOST/api/resources
(http://01.example.com/api/resources
,http://02.example.com/api/resources
)等网址的REST API
如何使api URL / URI独立于主机(http://example.com/api/resources)?
我可以想到几个解决方案 -
http://01.example.com/api/resources
等REST时请客户端使用服务器特定的URL / URI。 (但是当客户端迁移到不同的服务器时,他们的代码将会中断,直到他们将URL更改为新服务器)。这可能听起来令人困惑(因为它对我也是如此),我发现很难为这种情况设计解决方案。
答案 0 :(得分:0)
您可以在URL中添加应用程序ID(或客户端ID或您的标识符以选择数据库),例如http://example.com/1/api/resources和http://example.com/2/api/resources并通过NGINX,haproxy,F5或任何其他代理或路由器重定向所有HTTP请求。问题是每次迁移应用程序时都必须重新配置代理。
通常,如果您可以将所有这些数据库合并到一个数据库中,您将节省很多麻烦。 如果出于性能原因分离了数据库,请考虑对所有只读请求使用readonly slave。
更多REST API服务器指南:http://example.com/1/api/resources