我有三个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服务器中?
答案 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机器。