在Unix Socket和TCP/IP Socket上运行PHP-FPM,有哪些不同之处?

46

运行 PHP-FPM 有两种方式。虽然技术没有绝对安全的方法,但这两种方法各有优缺点。


5
这篇文章已经很好地描述了它。http://serverfault.com/questions/124517/whats-the-difference-between-unix-socket-and-tcp-ip-socket - Dimi
1个回答

69

主要区别在于使用完整的网络协议栈来“包装”和“解包”每个数据片段时增加了额外开销。 请注意,对于大多数部署来说这种开销是可以忽略不计的。

  • 当前端(如 Nginx)和 php-fpm 都在同一台服务器中,并且

    1. 您可以同时横向扩展前端和后端(例如,构建一个包含两者的容器,您可以创建更多容器,每个容器都有工作对),或
    2. 您唯一的选择是垂直扩展当前使用的“盒子”(例如,增加更多的 CPU、内存等)
  • 如果您希望将前端和后端分离,例如,通过单个 Nginx 接收连接并通过网络将工作传递到一个 php-fpm 集群,那么使用 TCP 连接(例如,listen = 127.0.0.1:9000)是有意义的。

因为每个环境都不同,所以像往常一样,唯一真正的选择就是从看起来正确的设定开始,进行负载测试,并保持测量性能的状态,这样您就可以在负载需求发生变化时尝试不同的选项(通常,您会选择更便宜或更易于维护的方法,因为这两种方法都是经过验证的)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接