nginx与php-fpm通讯方式

Posted naci

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx与php-fpm通讯方式相关的知识,希望对你有一定的参考价值。

nginxphp-fpm的通信方式有两种,一种是tcp socket的方式,一种是unix socke方式。

tcp socket
tcp socket的优点是可以跨服务器,当nginx和php-fpm不在同一台机器上时,只能使用这种方式。


unix socket
Unix domain socket 又叫 IPC(inter-process communication 进程间通信) socket,用于实现同一主机上的进程间通信。socket 原本是为网络通讯设计的,但后来在 socket 的框架上发展出一种 IPC 机制,就是 UNIX domain socket。虽然网络 socket 也可用于同一台主机的进程间通讯(通过 loopback 地址 127.0.0.1),但是 UNIX domain socket 用于 IPC 更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。这是因为,IPC 机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。

 

 

unix socket减少了不必要的tcp开销,而tcp需要经过loopback,还要申请临时端口和tcp相关资源。但是,unix socket高并发时候不稳定,连接数爆发时,会产生大量的长时缓存,在没有面向连接协议的支撑下,大数据包可能会直接出错不返回异常。tcp这样的面向连接的协议,多少可以保证通信的正确性和完整性。

以上是关于nginx与php-fpm通讯方式的主要内容,如果未能解决你的问题,请参考以下文章

nginx与php-fpm的运行方式?

FastCGI特点原理nginx与php-fpm两种通信方式对比

阿里云Linux CentOS8.1 64位服务器安装LNMP(Linux+Nginx+MySQL+PHP) 并发调试之php-fpm配置及其与Nginx的通信

使用socket方式连接Nginx优化php-fpm性能

workerman 与php-fpm冲突吗

php-fpm 和 nginx 的两种通信方式