[英]REST API hosted on multiple servers
我有一个需要帮助的问题(我以前从未遇到过这个问题,以前也找不到任何相关问题)。
php中的应用程序托管在名为01.example.com, 02.example.com
类的不同服务器上
现在,有许多使用此应用程序的客户端(用PHP编写的软件即服务),每个客户端都在一个特定的服务器上托管自己的数据库-客户端A数据库位于01.example.com
,客户端B数据库位于02.example.com
(哪个客户端属于哪个服务器存储在共享数据库中)
我想创建一个类似URL的REST API http://HOST/api/resources
( http://01.example.com/api/resources
, http://02.example.com/api/resources
)
如何使api URL / URI独立于( http://example.com/api/resources )这样的主机?
我可以想到几种解决方案-
http://01.example.com/api/resources
要求客户端提供用户服务器特定的URL / URI。 (但是,当客户端迁移到其他服务器时,他们的代码将中断,直到他们将URL更改为新服务器为止) 这听起来可能令人困惑(对我也是如此),但我发现很难为这种情况设计解决方案。
您可以在URL中添加应用程序ID(或客户端ID或您要选择数据库的标识符),例如http://example.com/1/api/resources和http://example.com/2/ api / resources并通过NGINX,haproxy,F5或任何其他代理或路由器重定向所有HTTP请求。 问题在于,每次迁移应用程序时,您都必须重新配置代理。
通常,如果您可以将所有这些数据库合并到一个数据库中,则可以节省很多麻烦。 如果出于性能原因分离数据库,请考虑对所有只读请求使用只读从属。
更多REST API服务器指南: http : //example.com/1/api/resources
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.