我正在尝试设置多个php-fpm服务器来处理流量峰值。
现在我有一台机器运行Nginx + PHP7.3-fpm + Redis(6vCPU和16GB内存),另一台单独的机器仅运行php-fpm 7.3和相同的扩展。
一切都很好,但我必须为流量高峰制定一个计划。我不知道如何连接这台新的隔离机器与主服务器一起工作而不会遇到很多麻烦。
我已经研究了很多关于它的东西,并没有发现任何特别的东西。
我能找到的最有价值的链接是:
https://serverfault.com/questions/744124/file-issue-with-nginx-php-fpm-on-separate-servers
nginx - php-fpm cluster
https://blog.digitalocean.com/horizontally-scaling-php-applications/
恩金克斯提供来自不同服务器的php文件
我阅读了几篇关于它的文档,但主要的疑问仍然存在:
我可以简单地从所有nginx位置中删除try_files行,并在php中设置cgi.fix_pathinfo = 0.ini这样我就不必在所有服务器上都有文件吗?
或者为了安全起见,最好安装一个NFS系统,让每个.php文件在所有服务器中,包括php-fpm专用服务器?
有些人说“创建一个NFS并挂载到所有php-fpm代理服务器或使用rsync通过服务器同步文件”,其他人说“删除try_files它会起作用”,但我确实找到了一篇文章说“删除try_files并交叉手指不要被黑客入侵”。:O
什么是更好/正确/最安全的方法?我们现在还可能被黑客入侵以删除try_files?
如果我可以简单地删除try_files,那么使用不同软件的不同位置是否正常工作?假设我在根文件夹上有一个WP,在/论坛/文件夹上有一个Xenforo安装。try_files彼此不同。
服务器之前的上游块{}
upstream backend {
server unix:/var/run/php/php7.3-fpm.sock weight=100 max_fails=5 fail_timeout=5;
server unix:/var/run/php/php7.3-fpm-2.sock weight=100 max_fails=5 fail_timeout=5;
#I want to add 192.168.x.x:9000 here to balance with this origin server
}
服务器块的示例:
location / {
try_files $uri $uri/ /index.php;
}
#AMP
location /amp/ {
try_files $uri $uri/ /amp/index.php;
}
#forum
location /forum/ {
try_files $uri $uri/ /forum/index.php?$uri&$args;
index index.php index.html;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_pass backend;
}
我还绑定了php-fpm服务器以在其内部IP(不是127.0.0.1)上运行,并设置为在php中listen.allowed_clients上访问nginx代理IP.ini
此外,nmap是否从源服务器在php-fpm-服务器-IP:9000上运行,它说它正在运行和启动。
如果您知道如何或可能有一个链接显示如何,请分享。我有机器待命,只是等待一起工作,请帮助实现这一目标。
米琪卡哇伊