与在 Unix 套接字上运行 PHP-FPM 与 TCP/IP 套接字相比,有什么区别?

2022-08-30 12:42:25

有这两种运行 PHP-FPM 的方法。我知道在技术中没有什么是防弹的,但是这两种方法的优缺点是什么?


答案 1

不同之处主要是使用完整网络堆栈“打包”和“解压缩”每条数据所增加的开销。请注意,对于大多数部署,开销可以忽略不计

  • 使用套接字(例如 listen = '/tmp/php-fpm.sock')是有意义的,当前端(例如 Nginx)和 php-fpm 都在同一个框中时,并且

    1. 您可以选择同时水平扩展前端和后端(假设您正在构建一个容器,并且您可以创建更多容器,每个容器都有一个工作对)或
    2. 您唯一的选择是垂直扩展您正在使用的一个“盒子”(例如,您添加更多的CPU,RAM等)。
  • 如果要对前端和后端进行解耦,例如,如果您决定通过单个Nginx接收连接并通过网络将工作传递到php-fpm盒集群来扩展环境,则使用TCP连接(例如,listen = 127.0.0.1:9000)是有意义的。

每个环境都是不同的,所以一如既往,唯一真正的选择是从一个看起来正确的设置开始,负载测试,并继续测量性能,以便您可以随着负载要求的发展尝试不同的选项(通常,您选择更便宜的实现或更易于维护的选项,因为两者都是可靠的, 经过实战检验的方法)


答案 2

推荐