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

Nginx连接fastcgi的方式有2种:TCP和unix domain socket

什么是Unix domain socket?—— 维基百科

Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字节流和数据队列,而管道通信则只能通过字节流。Unix domain sockets的接口和Internet socket很像,但它不使用网络底层协议来通信。Unix domain socket 的功能是POSIX操作系统里的一种组件。

Unix domain sockets 使用系统文件的地址来作为自己的身份。它可以被系统进程引用。所以两个进程可以同时打开一个Unix domain sockets来进行通信。不过这种通信方式是发生在系统内核里而不会在网络里传播。

TCP和unix domain socket方式对比

TCP是使用TCP端口连接127.0.0.1:9000

Socket是使用unix domain socket连接套接字/dev/shm/php-cgi.sock(很多教程使用路径/tmp,而路径/dev/shm是个tmpfs,速度比磁盘快得多)

测试机是个1核的centos5.4,2用户并发时系统资源消耗50%左右,10用户资源就跑得很满了。

   

2users

10users

nginx/1.2.9 + PHP 5.2.5

tcp

1060

1294

nginx/1.2.9 + PHP 5.2.5

socket

997

1487

nginx/1.2.9 + PHP 5.3.10

tcp

906

1082

nginx/1.2.9 + PHP 5.3.10

socket

880

1247

结论是在服务器压力不大的情况下,tcp和socket差别不大,但在压力比较满的时候,用套接字方式,效果确实比较好。

下面是php 5.3以上版本将TCP改成socket方式的配置方法:

修改php-fpm.conf

yum安装:/usr/local/php/etc/php-fpm.conf

编译安装:/application/php5.5.38/etc/php-fpm.conf

165行:

  1. ;listen = 127.0.0.1:9000  
  1. listen = /dev/shm/php-cgi.sock  

修改nginx配置文件server段的配置,将http的方式改为socket方式

  1. location ~ \.php$ {  
  2.             root           html/kodexplorer;  
  3.             #fastcgi_pass   127.0.0.1:9000;  
  4.                fastcgi_pass    unix:/dev/shm/php-cgi.sock;  
  5.             fastcgi_index   index.php;  
  6.             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;              
  7.            include        fastcgi_params;  
  8.         }  

重启php-fpm与nginx

service nginx restart

service php-fpm restart

ls -al /dev/shm

可以看到php-cgi.sock文件unix套接字类型

  1. [root@huawei html]# ll -al /dev/shm/php-cgi.sock   
  2. srw-rw---- 1 root root 0 May 14 13:47 /dev/shm/php-cgi.sock  
  3. [root@huawei html]# chown -R nginx.nginx /dev/shm/php-cgi.sock  #修改权限  
  4. [root@huawei html]# ll -al /dev/shm/php-cgi.sock   
  5. srw-rw---- 1 nginx nginx 0 May 14 13:47 /dev/shm/php-cgi.sock  

参考来源:https://www.cnblogs.com/yangliheng/p/5809401.html

转载于:https://www.cnblogs.com/ssgeek/p/9223376.html

使用socket方式连接Nginx优化php-fpm性能相关推荐

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

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

  2. php socket 不能用,PHP无法用Socket方式连接MySQ

    问题描述 今天在一台新的服务器中安装了php7.2,mysql-5.6后.测试用php连接mysql时发现无论如何php都连接不上mysql数据库,排除了数据库账号错误,并且php已经安装了连接数据库 ...

  3. 20@nginx优化

    文章目录 Nginx 优化 一.性能优化概述 1.我们需要了解的 2.从哪些方面入手进行优化 二.系统压力测试工具(ab) 1. 安装ab压力测试工具 2.ab测试工具参数 3.配置nginx静态网站 ...

  4. Nginx:nginx优化之--慢连接攻击应对

    nginx优化之--慢连接攻击应对 http://blog.sina.com.cn/s/blog_d22865190101gbae.html

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

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

  6. nginx优化——包括https、keepalive等

    nginx优化--包括https.keepalive等 一.nginx之tcp_nopush.tcp_nodelay.sendfile 1.TCP_NODELAY 你怎么可以强制 socket 在它的 ...

  7. nginx优化配置大全

    由于面试被问到nginx优化做过哪些 后来发现,其实做过的也不少,忘了的更不少,因此写个博客记录一下(里面有一些内容来源于其他作者). 配置文件样例为生产环境样例. 1.nginx基本优化 安装方式有 ...

  8. 学会Nginx优化与防盗链预防坏蜀黍

    Nginx优化与防盗链 文章目录 一.Nginx优化 1.配置nginx隐藏版本号 修改配置文件 修改源码文件,重新编译安装 2.修改用户与组 3.缓存时间 4.日志切割 5.连接超时 6.更改进程数 ...

  9. centos7系统nginx优化

    centos7 源码安装nginx 一 什么是nginx Nginx是一款轻量级的Web 服务器,反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强,能够支持高达 ...

  10. Nginx 优化与防盗链

    文章目录 一.Nginx 优化 1. 隐藏版本号 (1) 隐藏版本号的原因 (2) 版本号查看 ① nginx -v (仅限 web 浏览器) ② curl -I ③ 浏览器查看 (3) 隐藏方法 ① ...

最新文章

  1. Redis 高级特性(4)— 单线程架构
  2. java jdbc工具类抽取_JavaWeb入门(三):JDBC工具类的抽取
  3. UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)
  4. Andorid 实现图片转成pdf的方法
  5. 今天开始学模式识别与机器学习(PRML),章节5.1,Neural Networks神经网络-前向网络。
  6. 迅为linux下串口,迅为iMX6UL开发板多路串口开发板接口详解
  7. 南通大学计算机专业分数线2020,2020南通大学录取分数线_历年各专业分数线(2017-2019)_各省投档线_一品高考网...
  8. docker用gpu的参数_初探Docker调用GPU
  9. python猜数字1001untitled_如何利用Matlab GUI制作猜数字游戏
  10. C++《STL全集》
  11. 改 3 行代码不应该花一整天的时间
  12. SPSS 量表和问卷编制的基本步骤【SPSS 031期】
  13. 常见的大数据术语表(中英对照)
  14. (STM32F103C8T6 + JDY-31 + L298N)——蓝牙小车
  15. 深海迷航代码_《深海迷航(Subnautica)》入坑指南
  16. Excel VBA Dictionary excel vba 字典大全
  17. 阿里云国际站-阿里云在其云峰会上推出新的直播电子商务解决方案
  18. Python扫码登录保存和验证cookies值——网易云音乐篇(九)
  19. 为什么建议大家使用 Linux 开发!
  20. 华为AP固件升级方法 (适用 4051TN系列AP)

热门文章

  1. Required field ‘client_protocol‘ is unset!
  2. Hbase过滤器与scala编程
  3. RDD创建及算子分类及应用
  4. flume流程之SpoolDir-memory-hdfs
  5. 【装饰者模式】Decorator Pattern
  6. JS学习--Math对象
  7. Redis系列-Redis笔记(一)
  8. Lync Server 2010迁移至Lync Server 2013部署系列 Part7:配置Office Web App 02
  9. 每天学点linux之-mkdir和cd
  10. 互联网进入智慧互联时代 CSS将推进行业安全生态建设