与通过Unix Socket和TCP / IP套接字运行PHP-FPM有什么不同?

时间:2017-03-09 20:28:16

标签: php sockets tcp unix-socket

有两种运行PHP-FPM的方法。我知道科技没有任何防弹措施,但这两种方法的优点和缺点是什么?

1 个答案:

答案 0 :(得分:15)

差异主要是使用完整网络堆栈“打包”和“解压缩”每个数据的额外开销。 请注意,大多数部署的开销可以忽略不计

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

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

每个环境都不同,所以一如既往,唯一真正的选择是从一个看起来正确,负载测试的设置开始,并继续测量性能,以便在负载需求发展时尝试不同的选项(通常情况下,你选择一个更便宜实施或更容易维护的那个,因为它们都是坚实的,经过实战考验的方法)