素材牛VIP会员
nginx和php-fpm的通信方式有两种,一种是TCP的方式,一种是unix socket方式,哪种好一点?
 闪***星  分类:PHP代码  人气:1023  回帖:5  发布于6年前 收藏

看别人博客说是unix socket会显得不是那么稳定

 标签:nginxphp

讨论这个帖子(5)垃圾回帖将一律封号处理……

Lv6 码匠
追***忆 UI设计师 6年前#1

从稳妥的考虑肯定是使用tcp
原因是:
tcp协议能保证数据的正确性,sock不能保证。
虽然sock有更少的数据拷贝和上下文切换,更少的资源占用,但是如果数据都是错的,那还有什么用呢。

另外使用sock的话,必须nginx和fpm在同一台机器上。

Lv4 码徒
朱***叶 UI设计师 6年前#2
  • unix socket适合nginx和php-fpm都在一台机器上面

  • TCP适合nginx和php-fpm不在同一台机器上面

  • TCP通信还需要三次握手

  • 生产环境,考虑高可用的话。会有多台nginx搭配多台php-fpm使用

  • 性能方面没注意过

Lv6 码匠
请***g JAVA开发工程师 6年前#3

其实是看你的使用方式了,比如说传统的自己搭建的整个php环境也就是通常所说的nginx和php-fpm都安装在一台机器上,那你直接用unix socket就可以了。但是,如果说你之后倾向的发展方式是容器化,nginx和php都是单独构建容器化处理的话,那使用端口监听比较方便。

Lv5 码农
陈***6 软件测试工程师 6年前#4

表示没管过这个东西,都是nginx配置好了直接使用的,是 unix socket 吧

Lv6 码匠
qi***un 技术总监 6年前#5

unix socket 只能在同一机器上面使用,而且unix socket比套接字更快,因为其中没有套接字的路由操作,开销会比套接字更小。
会有很多linux傻瓜面板,他们可能会有很多中 php-fpm的版本,那么如果是不同版本去开不同的端口,然后nginx去配置的话,你要记住很多端口,sock文件便是解决这个问题最简单的方法。

具体参见:
https://stackoverflow.com/que...

大牛的沟通都是数据说话,哈哈哈哈

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取