文档章节

Nginx连接fastcgi的方式

baiwengong
 baiwengong
发布于 2017/07/25 22:27
字数 500
阅读 13
收藏 0
点赞 0
评论 0

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(/usr/local/php/etc/php-fpm.conf)

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

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

location ~ [^/]\.php(/|$) {
    #fastcgi_pass 127.0.0.1:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
}

重启php-fpm与nginx

service nginx restart
service php-fpm restart
ls -al /dev/shm

可以看到php-cgi.sock文件unix套接字类型 参考:http://zh.wikipedia.org/wiki/Unix_domain_socket

© 著作权归作者所有

共有 人打赏支持
baiwengong
粉丝 0
博文 39
码字总数 4649
作品 0
宝山
nginx中FastCGI操作指令

  fastcgi   服务器上,nginx转发php应用基本都是使用fastcfgi。      关于FastCGI的几个指令   fastcgicachepath /usr/local/nginx/fastcgicache levels=1:2 keyszone=TEST:10m i...

linux运维菜 ⋅ 05/14 ⋅ 0

突破10万高并发的nginx性能优化经验

linux下nginx服务应用总结(2)--突破10万高并发的nginx性能优化经验(含内核参数优化) 2016年11月28日 10:32:13 阅读数:4498 转载:http://www.cnblogs.com/kevingrace/p/6094007.html 在...

linjin200 ⋅ 04/30 ⋅ 0

CodeIgniter的伪静态配置

基本信息 + CodeIgniter 版本:3.1.8+ Nginx: Tengine/2.1.2 (nginx/1.6.2)+ MySQL: Ver 14.14 Distrib 5.6.33, for Linux (x86_64) using EditLine wrapper+ PHP: 5.6.30+ Zend Engine ......

冷三叔 ⋅ 04/28 ⋅ 0

Windows环境nginx在phpStudy下配置https

Nginx配置文件内容如下 #power by www.php.cn #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid l......

MrBoring ⋅ 05/24 ⋅ 0

6月11日任务Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理

12.13 Nginx防盗链 修改配置文件 location ~* ^.+.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; validreferers none blocked servernames *.abc.com ; if ($i......

吕湘颖 ⋅ 05/20 ⋅ 0

Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]

大 | 中 | 小 [ 2010-3-4 20:10 | by 张宴 ]   [文章作者:张宴 本文版本:v6.3 最后修改:2010.07.26 转载请注明原文链接:http://blog.zyan.cc/nginxphp_v6/]   前言:本文是我撰写的关...

thinkyoung ⋅ 2015/01/07 ⋅ 0

《Nginx1.13+MySQL 5.7+PHP7.2 优化》

文档作者:清风 文档版本:Version 1.0 修改记录:2018-04-13 系统环境:CentOS 6.5 64 bit Mysql:mysql-5.7.3 PHP:php-7.2.4 Nginx:nginx-1.13.12 网站平台:wordpress-4.9.1 配置过程 ...

清风hao ⋅ 04/20 ⋅ 0

6月7日任务 Nginx安装、 默认虚拟主机、Nginx用户认证、Nginx域名重定向

12.6 Nginx安装 1. wget http://nginx.org/download/nginx-1.12.1.tar.gz //下载安装包 2. tar -zxvf nginx-1.12.1.tar.gz //解压文件 3. ./configure --prefix=/usr/local/nginx //配置 4.......

吕湘颖 ⋅ 05/20 ⋅ 0

Walle的详细部署、项目应用以及502bad gateway错误解决

Walle的详细部署与应用 Walle简介: Walle是 一个web部署系统工具,具有 一键快速回滚的功能,它能清晰的记录 上线单申请、审核、部署和实时操作日志,能支持各种web代码发布和回滚。 环境:...

技术小疯子 ⋅ 06/05 ⋅ 0

ThinkPHP5配置Nginx实现兼容pathinfo模式访问

ThinkPHP项目,当使用Apache服务器时,Apache服务器本身支持pathinfo模式,ThinkPHP的4种访问模式都没问题;当使用Nginx时,碰到问题,必须使用兼容模式访问。 查找很多文档,归纳原因及解决...

makingdifference ⋅ 05/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

CodeSheep ⋅ 今天 ⋅ 0

骰子游戏代码开源地址

因为阿里云现在服务器已经停用了,所以上面的配置已经失效。 服务端开源地址:https://gitee.com/goalya/chat4.git 客户端开源地址:https://gitee.com/goalya/client4.git 具体运行界面请参考...

算法之名 ⋅ 今天 ⋅ 0

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部