
假如我有 3 台服务器, 一台服务器使用 nginx 做负载均衡,转发到另外两台应用服务器, 那么这两台应用服务器的配置是只有 php-fpm 呢,还是 nginx+php-fpm
我看到网上的配置有 (nginx 负载均衡)+ (ngin + php-fpm)+(ngin+php-fpm) 也有 (nginx 负载均衡)+ (php-fpm)+(php-fpm)
这两种配置架构有什么区别?一般都使用哪种?
1 Sunyanzi Sep 18, 2016 别人怎么做不知道 ... 反正我的应用服务器只跑 php-fpm ... 除非同时兼任分发否则不会跑别的 ... 我觉得如果在应用服务器上跑 nginx 却只连本地 php-fpm 的话 ... 这个 nginx 用的就完全没意义 ... 这种反向代理架构的优点 ... 大概就是前端挂了的时候可以很方便的把后端一键顶上去送死吧 ... |
2 w708833018 OP @Sunyanzi 我跟你的想法一样,不过我问过很多群,不少人选择 ngin+php-fpm ,也有人选择 php-fpm 。没有人能清清楚楚的说明白这两种设计到底有什么优劣,我就很纠结。 |
3 chenset Sep 18, 2016 同样纠结过的问题, mark |
4 ovear Sep 18, 2016 via Android 难道就我一个人是 Nginx with multiply apache 么。。 |
5 fredcc Sep 18, 2016 nginx 与 php-fpm 不在一台机器上时,要走 TCP 连接,效能和承载能力不如 nginx+php-fpm 走 unix domain socket ,这个对比测试很多。 |
6 alexleft Sep 18, 2016 如果是我设计,我会考虑用 lvs 做 HA 和负载均衡,然后每台服务器上部署一个nginx ,然后每台服务器上再部署 N 个 php-fpm 。因为一个php-fpm 很容易挂掉,物理资源可能也用不尽。 nginx 上还可以合理把访问在不同的php-fpm 进程间做次一级的负载平衡。 |
7 alexleft Sep 18, 2016 换另外一种角度看, php-fpm 的集合其实就是应用程序池了,lvs+nginx 只是负载均衡网关。 |
8 alex321 Sep 18, 2016 外行人随便说一说, TCP 和 Unix Socket 的区别。 https://easyengine.io/tutorials/php/fpm-sysctl-tweaking/ |
9 w708833018 OP 能给一个测试结论的链接吗 |
10 w708833018 OP @fredcc 能给一个测试结论的链接吗 |
11 fredcc Sep 18, 2016 @w708833018 自己跑一下测试脚本也很快的吧。 |
12 sunmonster Sep 18, 2016 咦,现在的 php-fpm 连的不是 unix socket 吗,我看的教程基本上都是 unix socket ,连 9000 端口的话应该很少了吧 |
13 alpha1130 Sep 21, 2016 建议是 nginx+php-fpm 的部署方式,跨服务器的 php-fpm 容易出现网络 IO 瓶颈 如果可以直接向外网暴露服务器,通过域名访问,做 dns 轮询就可以了 |