【发布时间】:2015-11-06 19:49:12
【问题描述】:
我在试图找到一种方法来构建我的应用程序以进行扩展时遇到了一个大问题。以下是我当前的设置:
我们有一个用 PHP 和 MySql 编写的应用程序。该应用程序的编写方式理论上可以使用相同的代码库为数千个不同的网站提供服务(但每个网站都有不同的数据库)。
在我们当前的设置中,每个网站有 1 个 nginx 配置文件,它们都指向同一个位置,比如说 /var/www/current-version。我们有办法知道应该呈现哪个网站。
每次升级时,我们都会将代码更新到 /var/www/new-version
将所有代码从 /var/www/current-version/ 复制到 /var/www/old/
通过搜索和替换所有 nginx 配置文件并重新加载服务,将所有当前项目从 current/ 指向 old/
将代码从新/复制到当前/
-
通过网站循环到
- 编辑对应的nginx配置文件指向当前/文件夹
- 在所有实例中同步新的更新配置文件
- 运行更新脚本(我们必须这样做,因为升级过程可能涉及迁移数据库和其他一些事情)
此升级过程涉及相当多的步骤,并且会遇到某些问题,例如同步速度不够快。
不知道有没有更好的办法呢?
PS: 我不确定这是否是提出此类问题的最佳地点,stackexchange 的子站点太多,我很困惑。无论如何,如果我发错地方了,请随时告诉我
【问题讨论】:
标签: php deployment upgrade scalability