曾经有一个面试官,问我有没有在原公司做过什么创新的东西,我当时懵了,的确想不出来,

因为在公司的两年一直在学习,还没有到厚积薄发。但是事后一想,有一点的确能算的上,

虽然不是我发明的,但公司其他同事的确没人想到或注意过。我在离职前一段时间,跟架构师

提过,叫他们换一下使用这种方式,不过到底有没有去做了,我也不知道。不过,那个问题

问的真的很好,能直接知道来面的这个人是不是泛泛之辈。

我提的就是用unix socket来代替tcp socket进行nginx,php之间的数据传输,当然大牛们

应该老早明了这个做法了。我是在看了APUE之后才更加理解他们差别的,当然FREEBSD上也有

大牛在讨论,结果都是一致的。因为tcp 四层协议并不只是逻辑上存在的,在操作系统内核里

都有它们对应的C代码的,那么一次请求,相当于nginx这边是四层从上往下走,

然后到php进程那边,四层协议从下往上走,然后php执行完脚本产生html,

把数据再在四层里从上往下走输送到nginx这边,而等在这边的nginx进程把那些数据又从下往上走,

然后经过一系列处理,再在四层协议里去走一遍,这次是经过eth0接口返回浏览器了。

单次请求,相当于单单nginx,php之间,那四层协议的代码都走了4次。如果高并发时,

亿级请求时呢,要消耗多少内存和cpu和时间拖延阿?如果用unix socket,

当然没有那4层协议的C代码了,虽然说也是要用到系统调用的,socket,bind,send,recv

这些函数接口都一样,但底层实现不一样。

简而言之,unix socket 就是buffer与bufer之间数据交换。而一般的大型网站,

都可以用unix socket 的,除非nginx 进程,php进程不在同一台机器上,

配置

nginx通过unix socket和fastcgi通信,比tcp socket要高效,重负荷下可以考虑。

1、在nginx.conf中修改配置为:

fastcgi_pass  unix:/tmp/php-cgi.sock;

#fastcgi_pass  127.0.0.1:9000;

2、在php-fpm.conf中修改配置为:

<value name="listen_address">/tmp/php-cgi.sock</value>

转载于:https://blog.51cto.com/johnsteven/818223

Nginx使用uninx socket来连接fastcgi(php)相关推荐

  1. nginx以unix-domain-socket方式连接fastcgi(php)

    nginx连接fastcgi的方式默认是http方式的,在linux还有一种速度更快的方法就是通过unix domain socket来完成,下面介绍这种方法: 首先建立/tmp/php-cgi.so ...

  2. Nginx连接fastcgi的方式

    2019独角兽企业重金招聘Python工程师标准>>> Nginx连接fastcgi的方式有2种: TCP和unix domain socket 什么是Unix domain soc ...

  3. nginx php fpm socket,php-fpm 使用 socket 方式和 nginx 通讯,(速度优化)

    1.什么是域Socket "Unix domain socket 或者 IPCsocket 是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信.与管道相比,Unix domain ...

  4. socket 获取回传信息_基于netty框架的socket长连接负载均衡解决方案 oswl

    前言 物联网如今是一个大的趋势,但是概念还比较新颖.大家对这一块的技术积累也比较匮乏,借此前段时间摩拜单车出现了大规模瘫痪的现象.我们今天来讨论一下物联网项目的开发方式. 关于tcp/ip 相关的知识 ...

  5. android socket 长连接_php socket如何实现长连接

    长连接是什么? 朋友们应该都见过很多在线聊天工具和网页在线聊天的工具.学校内有一种熟悉的功能,如果有人回复你了,网站会马上出现提示,此时你并没有刷新页面:Gmail也有此功能,如果邮箱里收到了新的邮件 ...

  6. android socket 长连接_TCP/IP,http,socket,长连接,短连接

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家 下一篇:这200G的Java实战资料是我师傅当年教 ...

  7. 基于netty框架的socket长连接负载均衡解决方案

    socket通讯的单机瓶颈 物联网的项目socket使用方式有两种: 短连接的socket请求 维持socket长连接的请求 对于socket短链接来说就好比是http请求,请求服务器,服务器返回数据 ...

  8. Python局域网socket无法连接的问题解决

    Python局域网socket无法连接的问题解决 服务器端的socket监听的是否是服务器的IP地址(并不是什么'localhost'或者'127.0.0.1'这种).即客户端需要连接的IP地址填入即 ...

  9. linux socket关闭连接 shutdown与close

    在Linux socket关闭连接的方法有两种分别是shutdown和close,首先看一下shutdown的定义 #include<sys/socket.h>int shutdown(i ...

最新文章

  1. css为元素添加样式,JQuery如何为元素添加样式
  2. 两代“狗”开发者首次解答30多个问题,一定有你想了解的!(附论文下载)
  3. android Handler机制之ThreadLocal详解
  4. P2689 东南西北
  5. SpringCloud(第 003 篇)服务发现服务端EurekaServer微服务
  6. SAP S/4HANA: 一条代码线,许多种选择
  7. 【阿里妈妈营销科学系列】第七篇:目标群组发现
  8. 牛客题霸 [ 数字在升序数组中出现的次数] C++题解/答案
  9. IOS开发之异步加载网络图片并缓存本地实现瀑布流(一)
  10. A complete log of this run can be found in
  11. Xml序列化和反序列化对象-使用MemoryStream-实践
  12. 每日小记2012.5.1
  13. 计算机毕业设计——基于SSM框架的公寓租房管理系统的设计与实现
  14. 方便检测电脑配置的软件收集
  15. kdj指标主要看哪个值_史上最全KDJ指标用法详解,学习KDJ指标看这一篇就够了
  16. 计算机安装系统后鼠标无法使用,重装系统鼠标键盘不能用怎么办 重装系统后鼠标键盘不能用解决办法...
  17. Canny边缘检测非极大值抑制法在双立方插值(Bicubic)图像边缘优化
  18. jQuery中的基本选择器,id,class,元素,通用
  19. 糟糕的打谱员(dp)
  20. mysql查询雇员地址和电话_数据库的查询(结合YGGL.sql)

热门文章

  1. 19. 删除链表的倒数第N个节点
  2. mysql中自己定义函数编程
  3. java单元测试覆盖率统计eclemma
  4. 2011清华MBA备考全记录
  5. PESCMS Ticket 客服工单系统 v1.2.5 发布
  6. Netty源码解析1-Buffer
  7. 【LeetCode-面试算法经典-Java实现】【015-3 Sum(三个数的和)】
  8. 《马哥教育协办GIAC、GOPS顶级技术峰会完美落幕》
  9. 【shell】删除重复文件
  10. TimerHandler的简单应用