Nginx - PHP-FPM 集群

3
我有三个php-fpm服务器和一个nginx服务器,我想使用nginx服务器来负载均衡php-fpm。 php-fpm服务器1-192.168.10.31 php-fpm服务器2-192.168.10.32 php-fpm服务器3-192.168.10.33
nginx服务器-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;
}

但是我的问题是,在哪里定义网站根目录 [ root /path/to/webfiles ]?
因为在 nginx 服务器上 [ 192.168.10.12 ],访问日志显示文件未找到 - 404。我应该把网站的 PHP 文件放在哪里?在 nginx 服务器上还是 PHP 服务器上?或者同时在 nginx 和 PHP 服务器上都放?

可能是两者都可以。你能用NFS共享或其他方式挂载它们吗? - scrowler
1个回答

3

这是一个比较老的问题,但是我会在这里给任何通过谷歌搜寻的人提供我的答案。

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机器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接