我目前正在我的服务器上部署一些PHP Zend应用程序,这是目前我得到的。
第一层 – 负载平衡器+ Httpcaching。
第二层 – networking服务器(在这里将有更多的networking服务器,这就是为什么负载平衡器)。
第三层 – MySql(将有复制,奴隶主,也许分裂每个客户或一群客户)。
问题是,目前我在networking服务器上运行nginx + php-fpm,所有的php代码都保留在用户各自的home文件夹中。 当时间过去了,我想增加服务器的数量,php-fpm和nginx实例。
我应该把php放在哪里,因为我不能在服务器之间复制它,否则更新会影响一致性;)
我想可能是一个NFS将持有所有的PHP代码,服务器将指向这一点。
这里的正确方法是什么?
我对服务器体系结构很陌生。
感谢你的帮助。
罗德里戈
你真的不应该把它放在NFS上。 这会使你的NFS服务器出现单点故障。 如果您的NFS无法访问(也许它崩溃,也许有一个networking问题..),那么你的整个网站是离线的。
相反,将PHP存储在某个中心位置 – 在任何地方。 哪里没关系。 然后,当您需要将文件推送到新服务器时,只需复制到新服务器。
您将不得不确保您的用户不直接更新Web服务器上的PHP。 他们应该在中央位置更新它们。
例如,假设您将web1和web2作为您的Web服务器,并且您的PHP文件保存在/home/foo/php和/home/bar/php 。 这是目前您的权威位置,可能需要更改。
设置类似/var/code/foo/php和/var/code/bar/php ,并告诉你的用户在那里更新。 当他们进行更新时,运行一个脚本,将文件复制到每个Web服务器上的/home/foo/php和/ home / bar / php`。
现在和将来仍然存在的一部分难题是,您将数据存储在用户主目录中。
你应该考虑转移到适当的版本控制系统,如Mercurial,Git或SVN。 将所有的数据存储在同一个位置,然后检查那些你想要的地方。
这方面的一个例子:
使用服务器(我们称之为dev1 )并安装SVN。 在SVN中创build一个新项目(我们称之为php_project1 )。 告诉你的用户检查svn://dev1/php_project1/userN ,并编辑和提交文件到SVN。
然后在您的Web服务器上,您可以执行如下操作:
cd /home/user1/php svn checkout svn://dev1/php_project1/user1
任何时候你需要更新你的Web服务器,你只需在主目录下运行svn update 。
还有更多我可以去。 欢迎来到pipe理一个networking农场。
和监控(Zabbix)和邮件服务器。 Pinba实时监控/统计服务器为PHP使用MySQL。
我想可能是一个NFS将持有所有的PHP代码,服务器将指向这一点。
不好的主意,使用版本控制系统(git,svn,mercurial,…)和部署脚本