zoukankan      html  css  js  c++  java
  • nginx、fastCGI、php-fpm关系梳理(转)

    前言:

      Linux下搭建nginx+php+memached(LPMN)的时候,nginx.conf中配需要配置fastCGI,php需要安装php-fpm扩展并启动php-fpm守护进程,nginx才可以解析php脚本。那么,这样配置的背后原理是什么?nginx、fastCGI、php-fpm之间又有什么关系呢?博主一直有这样的疑惑,由于无法理清nginx、php-fpm之间的关系,遇到nginx解析不了php脚本的时候,往往不知所措,花费的问题排查时间也非常长。因此,特地抽时间了解这背后的原理,梳理了一下nginx、fastCGI、php-fpm之间的关系。
     
    一、fastCGI?
      fastCGI是由CGI(common gateway interface,通用网关接口)发展而来,是http服务器(nginx、apache)和动态脚本语言(php)之间的通信接口。记住,fastCGI只是一个接口。
      fastCGI的优点:fastCGI采用C/S结构,可以将http服务器和动态脚本解析服务器分离(二者可以部署在不同的服务器上),让http服务器专一处理静态请求和转发动态请求到脚本解析服务器;脚本解析服务器则专一处理动态脚本的请求。
     
    二、nginx+fastCGI
      nginx不支持对外部程序的直接调用或者解析,必须通过fastCGI进行调用。nginx收到CGI请求之后,fastCGI接口在脚本解析服务器上,启动一个或者多个守护进程对动态脚本进行解析。
     
    三、php-fpm
      fastCGI进程管理器/引擎:即对动态脚本进行实际解析的守护进程,由fastCGI启动。这里,php-fpm就是支持解析php的一个fastCGI进程管理器/引擎。
     
    总结:
      fastCGI是nginx和php之间的一个通信接口,该接口实际处理过程通过启动php-fpm进程来解析php脚本,即php-fpm相当于一个动态应用服务器,从而实现nginx动态解析php。因此,如果nginx服务器需要支持php解析,需要在nginx.conf中增加php的配置:将php脚本转发到fastCGI进程监听的IP地址和端口(php-fpm.conf中指定)。同时,php安装的时候,需要开启支持fastCGI选项,并且编译安装php-fpm补丁/扩展,同时,需要启动php-fpm进程,才可以解析nginx通过fastCGI转发过来的php脚本
     
     

    我在nginx下配置一个项目,在vhost里添加.conf,在fpm.d中添加.conf,并在对应的nginx.conf和php-fpm.conf中引入,报错:

    页面报错:

     502 Bad Gateway

    error_log中报错:

        2015/10/09 10:21:31 [error] 6950#0: *90 connect() failed (111: Conne

        ction refused) while connecting to upstream, client: 10.209.73.119,

        server: professional_new.weibo.com, request: "GET /favicon.ico HTTP/

        1.1", upstream: "fastcgi://127.0.0.1:9100", host: "professional_new.

        weibo.com"

    原因是没有开启php-fpm进程  

  • 相关阅读:
    NLP 中的embedding layer
    Java Web -- Servlet(5) 开发Servlet的三种方法、配置Servlet具体解释、Servlet的生命周期(2)
    我对REST的理解
    QML 与 C++ 交互之工厂方法
    Hive分析窗体函数之LAG,LEAD,FIRST_VALUE和LAST_VALUE
    【C/C++】:用C实现输出日期的阴历日子
    Android6.0执行时权限解析,RxPermissions的使用,自己封装一套权限框架
    统计报表
    2015 HDU 多校联赛 5363 Key Set
    查看sedna创建的数据库和集合,文档之类
  • 原文地址:https://www.cnblogs.com/xiaoyueer/p/4863590.html
Copyright © 2011-2022 走看看