为了账号安全,请及时绑定邮箱和手机立即绑定

使用代理的内联负载均衡 - try_files

使用代理的内联负载均衡 - try_files

PHP
喵喵时光机 2022-09-17 17:55:42
我正在尝试设置多个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-serversnginx - php-fpm clusterhttps://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上运行,它说它正在运行和启动。如果您知道如何或可能有一个链接显示如何,请分享。我有机器待命,只是等待一起工作,请帮助实现这一目标。
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

由于我没有答案的帮助,我最终做了一个从源服务器到PHP服务器的NFS,只是为了拥有文件,从而保持try_files。我不想冒着在不知道安全后果的情况下删除try_files的风险。

所以现在对我来说,正确的答案是做一个NFS并将NGINX请求传递给PHP-FPM缩放机。一切都很顺利,没有重大问题。唯一的问题是更改 php-fpm.conf 中的内部 IP,将内部 IP 包含在 NFS 服务器中,并将新的内部 IP 包含在 NGINX 上游池中。当然,从文件中删除php会话到Redis。这样,在将请求从源服务器更改为缩放服务器时,记录的页面不会注销。


查看完整回答
反对 回复 2022-09-17
  • 1 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号