运行 PHP-FPM 通过 Unix 套接字与 TCP/IP 套接字有什么区别?

What are the differences from running PHP-FPM over an Unix Socket vs a TCP/IP Socket?

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

不同之处主要在于使用完整网络堆栈对 "pack" 和 "unpack" 每条数据增加的开销。 请注意,对于大多数部署来说,开销可以忽略不计

  • 当前端(例如 Nginx)和 php-fpm 都在同框和

    1. 您可以选择一起水平扩展前端和后端(假设您正在构建一个包含两者的容器,您可以创建更多容器,每个容器都有一个工作对)或
    2. 您唯一的选择是垂直缩放您正在使用的 "box"(例如,您添加更多 CPU、RAM 等)
  • 如果你想解耦前端和后端,例如,如果你决定向上扩展,使用 TCP 连接(例如 listen = 127.0.0.1:9000)是有意义的通过让单个 Nginx 接收连接并通过网络将工作传递给 php-fpm boxes

  • 集群来创建您的环境

每个环境都是不同的,所以一如既往,唯一正确的选择是从一个看起来正确的设置开始,进行负载测试,并不断测量性能,这样您就可以随着负载需求的变化尝试不同的选项(通常,您会选择实施成本更低或更易于维护的方法,因为两者都是可靠的、经过实战检验的方法)