zoukankan      html  css  js  c++  java
  • PHP+FastCGI+Nginx动态请求处理配置


             Nginx不支持对外部程序的调用,所以必须通过FastCGI接口实现对外部程序的调用从而实现对client动态页面请求的处理。

          CGI的英文全称为Common Gateway Interface(公共网关接口),是Nginx和动态脚本程序的桥梁。Nginx通过FastCGI接口将动态请求发送给FastCGI,FastCGI中的Wrapper进程生成一个线程。将请求交给脚本解释程序运行,然后通过原来的socket将解释运行后的结果原路返回给Nginx,之后Nginx将结果交给client。

        Nginx是通过套接字文件socket来将动态请求发送给wrapper,使用的是Tcp协议。wrapper通过CGI接口来接受请求。这样webserver和解释程序之间全然能够独立开发,这样避免了解释程序直接调用server的接口而导致的出错和崩溃以及安全性问题。并且能够使Nginx专心处理静态页面请求和转发动态请求。而将脚本解释器安装在还有一台server,使server的压力得到分摊。


           CGI是作为PHP程序的补丁开发的,安装PHP首先安装其所依赖的库,之后在编译配置參数时增加对CGI的支持--enable-fpm --enable-cgi等选项。编译PHP的扩展模块。须要用到php中的phpize工具用来生成模块编译时的configure文件。假设执行phpize时无法生成configure文件,原因有:没有安装autoconf软件包。

           php-fpm进程的配置文件为/usr/local/php/etc/php-fpm.conf  能够对php-fpm进行对应的配置。

          Nginx配置支持fastcgi:

                      location  ~ .php${

                              root  html;

                             fastcgi_pass   unix:/tmp/fastcgi.soke   //通过套接字文件和cgi建立联系,该文件在php-fpm.conf中设置

                             fastcgi_index  index.php;

                             fastcgi_param  SCRIPT_FILENAME  html$SCRIPT_FILE_NAME;设置參数

                             include fastcgi_params;  //导入fastcgi參数配置文件。该文件在nginx安装时自己主动生成。

                                          }


  • 相关阅读:
    MVP的理解和使用
    Fragment
    ProgressBar及其子类
    几种Menu和几种对话框
    APP打包上线应注意的问题!
    Linux常用命令大全
    如何调试Android Framework?
    Android Studio你不知道的调试技巧
    OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
    LookupError: Couldn't find path to unrar library.
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6978539.html
Copyright © 2011-2022 走看看