nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket
这篇讲的是如何解决高并发下PHP服务器因频繁创建TCP短连接导致的端口耗尽问题。作者从观察到的真实案例切入——服务器因大量TIME_WAIT状态堆积,耗尽了可用端口,导致新建连接失败。常见的“缩短2MSL时间”的方案治标不治本,因此他引导读者思考更优的解法。 文章核心对比了Nginx与PHP-FPM之间的两种通信方式:默认的TCP socket和Unix Domain Socket(UDS)。作者结合一个WebGame的架构实例指出,当Nginx与PHP-FPM部署在同一台服务器时,使用TCP socket(尤其是短连接模式)会因经过完整的网络协议栈而产生不必要的系统开销,并引发上述的端口问题。相比之下,Unix Domain Socket绕过了TCP/IP层,直接在内核中通过文件套接字通信,大幅降低了连接建立与销毁的开销,从根本上避免了端口竞争。 文章最终给出的结论很明确:对于同机部署的Nginx与PHP-FPM,切换到Unix Domain Socket通常是更优的选择,它能提升效率并彻底解决因短连接导致的资源瓶颈。这对运维和后端开发人员优化本地服务通信有直接的参考价值。