我们的网站正在发展,我们在世界各地的客户越来越多。我们使用 Nginx、PHP 和 MySQL,我们的服务器位于英国,因此在欧洲速度很快,但我们距离服务器越远,网站速度就越慢。(从现在起,请叫我队长)。
因此,我正在研究如何解决这个问题。我们有一个标准结构:
[web-servers for dynamic content] [CloudFlare CDN]
| |
[database-servers] [web-servers for static content]
因此,我们正在缓存我们的静态内容,问题是如何在全球范围内快速传递网站的其余部分。
我正在考虑两个主要解决方案:
在许多不同的地理位置拥有相同的基础设施并使用某种形式的地理位置 DNS:
[Country-1] [Country-2] [Country-3] | | | [web-servers] [web-servers] [web-servers] \ | / \ | / [DATABASES]
现在我在这里看到的问题是如何保持 MySQL 复制在全球范围内保持最新?我相信从新加坡到伦敦的主主复制不会始终保持最新,并且延迟当然会给应用程序带来问题。
使用反向代理和专用线路
[Country-1] [Country-2] [Country-3] | | | [Reverse Proxy] [Reverse Proxy] [Reverse Proxy] \ | / \ | / [web-server] | [DATABASES]
在这里,我考虑从每个国家/地区开辟专线,并使用反向代理创建到我们服务器的高速公路网络,尽管这看起来更像是科幻小说 :)
无论如何,我正在寻找一些资源,或有关其他人如何实现这一目标的建议。