lnmp使用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改成socket方式的配置方法:

1、修改php-fpm的配置文件(如果是编译安装可能是/etc/php-fpm,视具体情况而定)





vim /etc/php-fpm.d/www.conf

;listen = 127.0.0.1:9000

listen = /dev/shm/php-cgi.sock





2、修改.sock文件权限(修改为运行php-fpm的用户)

方法:

ps -ef|grep php-fpm

root      6940     1  0 17:03 ?        00:00:00 php-fpm: master process (/etc/php-fpm.conf)

nginx     6941  6940  0 17:03 ?        00:00:00 php-fpm: pool www

nginx     6942  6940  0 17:03 ?        00:00:00 php-fpm: pool www

nginx     6943  6940  0 17:03 ?        00:00:00 php-fpm: pool www

nginx     6944  6940  0 17:03 ?        00:00:00 php-fpm: pool www

nginx     6945  6940  0 17:03 ?        00:00:00 php-fpm: pool www





修改用户权限

chown nginx:nginx /dev/shm/php-cgi.sock

其中nginx是php-fpm.conf里面设置的用户和群组





ll /dev/shm/php-cgi.sock 

srw-rw-rw- 1 nginx nginx 0 Oct  8 17:03 /dev/shm/php-cgi.sock





3、修改nginx配置文件

vim /etc/nginx/nginx.conf





将 fastcgi_pass   127.0.0.1:9000;

改为





fastcgi_pass  unix:/dev/shm/php-cgi.sock;





具体:

location ~ \.php$ {

try_files $uri = 404;

#fastcgi_pass   127.0.0.1:9000;

fastcgi_pass  unix:/dev/shm/php-cgi.sock;

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

include        fastcgi_params;

}





4、重启nginx和php-fpm

systemctl restart php-fpm

systemctl restart nginx





经过测试,php应用正常使用





参考链接:

https://blog.linuxeye.com/364.html

http://blog.csdn.net/niao_ye/article/details/39666695

http://yangjunwei.com/a/1760.html

http://blog.csdn.net/liv2005/article/details/7741732

http://www.cnxct.com/default-configuration-and-performance-of-nginx-phpfpm-and-tcp-socket-or-unix-domain-socket/

lnmp使用socket方式连接nginx优化php-fpm性能的更多相关文章

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

    Nginx连接fastcgi的方式有2种:TCP和unix domain socket 什么是Unix domain socket?-- 维基百科 Unix domain socket 或者 IPC ...

  2. Nginx优化之服务性能优化

    优化Nginx服务的worker进程个数 修改nginx主配置文件 worker_processes 1; #指定了Nginx要开启的进程数,结尾数字就是进程个数 Nginx有Master进程和wor ...

  3. 高性能网站服务器的架设优化-Nginx优化

    一:对于高性能网站 ,请求量大,如何支撑?思路 在网站架构设计中,大家一定对 LNMP (Linux Nginx Mysql Php) 不陌生.LNMP 确实是一个非常优秀的架构,秉承着自由,开放,高 ...

  4. 18、nginx优化

    一.性能优化概述 基询imm能优化,那么在性能优化这一章,我们将分为如下几个方面做介绍 1.首先我们需要了解性能优化要考虑哪些方面. 2.然后我们需要了解性能优化必须要用到的压力测试工具ab. 3.最 ...

  5. NGINX优化参数

    (1)nginx运行工作进程个数,一般设置cpu的核心或者核心数x2 如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor / ...

  6. Nginx优化思路

    对于高性能网站 ,请求量大,如何支撑? 1方面,要减少请求 对于开发人员----合并css, 背景图片, 减少mysql查询等. 2: 对于运维 nginx的expires ,利用浏览器缓存等,减少查 ...

  7. nginx优化配置大全

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

  8. Nginx优化之一

    一.Nginx安全优化 1.1:隐藏nginx版本信息 官方配置参数说明:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_ ...

  9. nginx优化

    此文章非原创,出自鸟哥之手~ http://blog.chinaunix.net/uid-25266990-id-2985541.html 改排版改得多,当然红色部分要注意下,用得较多 ------- ...

随机推荐

  1. 爬楼梯问题 leetcode70

    假设你正在爬楼梯,需要n阶你才能到达楼顶,n是正整数 每次你可以爬1或2个台阶,有多少种不同的方法可以爬到楼顶 当n=1时,steps=1 当n=2时,1+1,2 steps=2 当n=3时,1+1+ ...

  2. 使用fiddler模拟http请求

    概述  与httpwath相比,fiddler能模拟http请求.能断点调试.http分析统计吸引了我,使用之后感觉这个工具非常不错,这篇文章只单介绍一下fiddler工作原理,简单介绍一下它的重要功 ...

  3. 支持向量机(SVM)的推导(线性SVM、软间隔SVM、Kernel Trick)

    线性可分支持向量机 给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为 \[w^{\ast }x+b^{\ast }=0\] 以及相应的决策函数 \[f\le ...

  4. Object,equals,toString

    一.Object类 说明:Object类是Java中所有的类的直接或者间接的父类(基类). 该类中定义的是所有的类中的都有的的功能. 位置:可以从API中查找. 二.Object类之 equals 方 ...

  5. VS Code折腾记 - (2) 快捷键大全,没有更全

    前言 VSCode的快捷键继承了一些IDE风格,有VS的身影,也有Emacs的身影..简言之,内置快捷键玩熟了,效率提高不是一点两点. VsCode 快捷键有五种组合方式(科普) Ctrl + Shi ...

  6. java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter

    今天想写个随笔,最近经常遇到使用junit的时候报java.lang.NoClassDefFoundError,今天算是恍然大悟了,原来junit虽然在gradle里面配置了,也在Project an ...

  7. POJ 2247 Humble Numbers

    A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, ...

  8. ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展

    ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty.Zend 等系统的类 ...

  9. Spark2.1.0编译

    1.下载spark源码包 http://spark.apache.org/downloads.html 2.安装Scala与maven,解压spark源码包 安装Scala: tar zxf scal ...

  10. UpnP Hacking

    1.概述 通用即插即用(UpnP)是一种用于PC机和智能设备的常见对等网络连接的体系结构. UPnP以Internet标准和技术(例如Tcp/IP.HTTP和XML)为基础,使这样的设备彼此可自动连接 ...