• Nginx 解析PHP的原理 | CGI、FastCGI及php-fpm的关系


    Nginx解析PHP的原理,CGI/FastCGI以及PHP-Fpm的关系.

    一、PHP+Nginx应运而生的场景.
    随着互联网的发展,用户对此接受面广,数据流的增大使得Web端的运行承载压力日益增大,野蛮生长在大数据时代里的WEB语言PHP也找到了比老搭档更优越的活力搭档Nginx,说到Nginx咱就一起唠一唠这其中的奥妙.

    从以下几个维度来剖析一下Nginx的活力所在,当然是和解析PHP的老搭档APACHE相比而言.

    1. 性能
      1.1 资源占有率少,节省内存资源
      1.2 非阻塞式的请求处理机制给之增加了强劲动力,这也是为什么能在高迸发折腾下保持金枪不倒之势. 哈哈~
      1.3 有很多资料千篇一律说性能比Apache提升了3倍,这块不敢苟同。
    2. 延展性
      2.1 高内聚的模块化设计,简介的模块编写,使得产品更具魅力和活力
      2.2 有活跃的技术社区和技术群体,便于技术的支持度.
    3. 量级和可用性
      3.1 轻量级
      3.2 解析静态页面远比解析动态页面性能好.
      3.3 配置更简洁友好,戒掉了臃肿. 美中不足的是URL重写还待加强.
      3.4 新兴意味着有稳定性的挑战和GUG的伴随,当然不必担忧,有前人铺路呢.

    二、什么是CGI、什么是FastCGI,什么是PHP-Fpm,什么是PHP-cgi

    CGI :是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口
    FastCGI : 是CGI的fast版本(哈哈,急速版)多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,这一带Fast可了不得了:
    1.性能提升.他老爹处理请求时遇到动态脚本解析器。
    2.升级附带了支持高迸发性
    3.安全上做了升级
    说道性能提升了,肯定有性能提升之道,那提升的原理是啥呢?
    1.1 接口处理方式采用了 C/S 结构. 在处理机制上就使得HTTP服务和脚本解析器剥离开来,使得部署变得可分离,这样脚本解析服务器可以分出来多个守护进程,遇到动态脚本则分发给FastCIG,将得到结果反给浏览器。HTTP服务器呢则一心一意的干静态资源解析方面的活。这就相当于是多线程的概念啦,当然会快呀。
    PHP-Fpm : 这个就是咱们上面提到的脚本解析守护进程.
    PHP-Cgi : 是PHP自带的FastCGI管理器。

    三、Nginx如何解析PHP
    Nginx 是没法解析动态脚本的,下面看一张原理解析图片,说白了Nginx解析php是通过fast-cig + php-fpm配合完成的.
    140224291.png
    用户通过浏览器访问PHP页面时候,流程是首先请求到了Nginx服务器,服务器发现是动态请求,Nginx通过Fast-cgi接口来跟动态脚本PHP通信,Fast-cig在Linux下是socket(文件或者Ip类型),通信过程中由FastCGI的wrapper(wrapper可理解为用于启动另外一个线程的程序)进而启动一个CIG的解析器.Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi
    FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server再返回给用户。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了,在php-cgi启动的过程中,会有守护者或者说管理者(PHP-fpm),防止php-cgi的崩溃.
    这样整流程也算完成了.

    转载 http://blog.csdn.net/qq_36031499/article/details/53911906

  • 相关阅读:
    Linux系统下用mail(mailx)发送邮件
    Docker+Nginx+KeepaLived 简单实现Nginx高可用+负载均衡
    MySql安装(Windows版本)
    十分钟入门Git和GitHub的源码版本管理
    Sql Server数据库读写分离配置
    C 语言中的 printf() 和 scanf() 简介
    C 语言字符串简介
    C 语言概述
    初识 C 语言
    计算机中的存储器
  • 原文地址:https://www.cnblogs.com/rickzhai/p/7896391.html
Copyright © 2020-2023  润新知