nginx - php-fpm集群

时间:2016-05-24 00:51:41

标签: php cluster-computing

我有三个php-fpm服务器和一个nginx服务器,我想使用nginx服务器对php-fpm进行loadbalance。

php-fpm server1 - 192.168.10.31 php-fpm server2 - 192.168.10.32 php-fpm server3 - 192.168.10.33

nginx - server - 192.168.10.12

我在nginx服务器上的配置是;

upstream php_backend {
  server 192.168.10.31:9000;
  server 192.168.10.32:9000;
  server 192.168.10.33:9000;
}

location ~ \.php$ {
fastcgi_pass php_backend;
}

但我的问题是,我应该在哪里定义webroot [root / path / to / webfiles]

因为在nginx服务器[192.168.10.12]上,访问日志说找不到文件 - 404.我应该在哪里保存网站php文件?在nginx服务器或PHP服务器上?或者在nginx和php服务器中?

1 个答案:

答案 0 :(得分:1)

这是一个古老的问题,但我会在这里给我的答案,任何人都可以使用Google搜索。

Robbie Averill的评论是正确的。您应该在Nginx和PHP服务器上托管文件。您可以使用NFS共享执行此操作,但这可能会减慢速度。

要解决此问题,您可以更新nginx服务器上的代码,然后rsync到php服务器。 您可以轻松地构建一个类似于:

的bash脚本
rsync -avzp -e ssh /srv/www/ svc_internal@php.insypro.com:/srv/www/
rsync -avzp -e ssh /srv/www/ svc_internal@php2.insypro.com:/srv/www/
rsync -avzp -e ssh /srv/www/ svc_internal@php3.insypro.com:/srv/www/

当然,您希望将其包含在一个用于更新代码的bash脚本中,并同步php机器。