本站源码全部测试通过,配有前台及后台演示图,绿色安全,希望能对大家有所帮助!
  • 收藏本站
  • 网站地图
  • 发布源码
  • 首 页
  • VPS/云主机
  • 交流论坛
  • 服务器程序源代码分析之二:php-fpm
    时间:2019-03-20 08:27:46来源:模板之家 作者:转载大师 下载:1899 次
    马哥教育 马哥Linux运维


    马哥linux运维 | 最专业的linux培训机构


    php作为排名top2 互联网开发工具,非常流行,可以参考:中国最大的25个网站采用技术选型方案

    php这个名称实际上有两层含义

    1. 广义的php 是指用后缀名为.php的脚本,就是程序员编写的php代码:

    2. 狭义的php 是指php部署程序,比如说 lnmp,这个php 就是 php-fpm

    php-fpm是什么

    直接定义:

    php-fpm是一个内置php解析器,采用prefork+异步IO 模型的高性能服务器程序

    php-fpm从php5.3.3开始已经进入到php源代码包,之前是作为patch存在的

    很少人会去读php本身源代码,我6年前解决php内存泄露问题的时候做了些研究,最近再查看了一番,发现php的开发者很有诚意,这是一款非常出色的服务器软件,支持如下

    1. php-fpm 采用 prefork的方式 (listen同一个地址,然后fork出若干子进程)

    2. 在子进程里面,采用异步IO处理客户端请求

    3. event模型可以在php-fpm.conf中配置

    1. ; Specify the event mechanism FPM will use. The following
      is available:

    2. ; - select (any POSIX os)

    3. ; - poll (any POSIX os)

    4. ; - epoll (linux >= 2.5.44)

    5. ; - kqueue (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0)

    6. ; - /dev/poll (Solaris >= 7)

    7. ; - port (Solaris >= 10)

    8. ; Default Value: not set (auto detection)

    9. ;events.mechanism = epoll

    在linux服务器上,如果不设置events.mechanism,那么默认就是采用epoll,所以

    php-fpm的IO模型&并发处理能力和nginx是完全一致

    nginx以性能卓越闻名,大部分程序员都认为php效率低下,看了源代码,才知道这是传奇啊

    在高性能部署的时候,大家往往会针对性的优化nginx 。我自己之前部署php程序也犯了错误,8G内存的server,php-fpm的max children都会设置128+,现在看来太多了,参考nginx的部署:

    nginx的worker_process一般设置为 2 * cpu-core

    php-fpm配置为 3倍 cpu core number就可以了

    php-fpm稳定性比nginx稍差
    这是因为php-fpm内置了一个php解析器,php-fpm进程就和php程序捆绑了,如果php脚本写的不好,有死循环或者阻塞在某个远端资源上,会拖累加载它的php-fpm进程

    而nginx和后端应用服务器之间通过网络连接,可以设置timeout,不容易堵死的

    php-fpm的fastcgi是短连接
    我原以为是长连接的,看了代码才知道也是短连接,处理一个request就关闭掉

    php-fpm接口采用fastcgi
    非常遗憾,php-fpm和fastcgi完全绑定了,无法独立使用 。只能部署在支持http-fcgi协议转换程序背后(nginx)。其实可以考虑在php-fpm代码包里面引入http协议支持,这样php-fpm可以独立运行,让nodejs无话可说

    php-fpm等同于OpenResty
    OpenResty是一个国人开发的nginx模块,就是在nginx引入lua解释器. 实际上,它和php-fpm的唯一差别就是一个采用php语法,一个用lua,所以OpenResty要作为nginx增强包使用还可以,要选择它作为一个主要编程工具,没有任何必要

    从架构上来说,php-fpm已经做到最好,超过大多数 python部署工具,我再也不黑它了

    点击左下角查看更多


      阅读原文

      发送中

      阅读原文
      转载请注明来源: 服务器程序源代码分析之二:php-fpm
      本文永久链接地址:bencandy.php?fid=41&id=5650
      本文标签:

      版权声明:
      —— 本文内容由互联网用户自发贡献, 本站不拥有所有权, 不承担相关法律责任, 如果发现本站有涉嫌抄袭的内容, 欢迎发送邮件至 :
      —— 1034252225@qq.com 举报, 并提供相关证据, 一经查实, 本站将立刻删除涉嫌侵权内容。

      最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全
      福娃源码交易平台,VIP会员,友价T5内核,可运营版本福娃源码交易平台,VIP会员,友价T5内核,可运营版本
      最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏
      推荐资讯

      开源之家:最新微信收银系统程序(刷卡支付、卡券核销、扫码支付

      开源之家:最新微信收银系统程序(刷卡支付、卡券核销、扫码支付微信源码3415

      最新微信全民经纪人系统V3.0完整商业版

      最新微信全民经纪人系统V3.0完整商业版微信源码3415

      星火草原微信三级分销系统云指分销商城完美修复版二次开发源码

      星火草原微信三级分销系统云指分销商城完美修复版二次开发源码微信源码3415

      最新牛NIUCMS本地O2O系统V3.0商业版源码二次开发版微信完美三

      最新牛NIUCMS本地O2O系统V3.0商业版源码二次开发版微信完美三微信源码3415

      最新销客多V3.5三级分销系统二次开发版修复物流公司BUG支持佣

      最新销客多V3.5三级分销系统二次开发版修复物流公司BUG支持佣微信源码3415
      开源之家广告栏目A
      热点资讯

      最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全

      最新《系统天堂》软件下载站门户整站程序源码 带WAP手机端+全下载系统6481

      福娃源码交易平台,VIP会员,友价T5内核,可运营版本

      福娃源码交易平台,VIP会员,友价T5内核,可运营版本下载系统6481

      最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏

      最新仿酷趣商业源码交易平台完整源码,带任务平台功能,新闻栏下载系统6481

      mobanbox素材网源码,素材图片站系统,类似千图网源码,高端响应

      mobanbox素材网源码,素材图片站系统,类似千图网源码,高端响应下载系统6481

      2017年10.20更新友价T5源码素材交易网站源码|虚拟物品交易商城

      2017年10.20更新友价T5源码素材交易网站源码|虚拟物品交易商城下载系统6481
      开源之家广告栏目B
      开源之家广告栏目C