共计 1700 个字符,预计需要花费 5 分钟才能阅读完成。
Nginx 不支持对外部程序的调用,所以必须通过 FastCGI 接口实现对外部程序的调用从而实现对客户端动态页面请求的处理。
CGI 的英文全称为 Common Gateway Interface(公共网关接口),是 Nginx 和动态脚本程序的桥梁,Nginx 通过 FastCGI 接口将动态请求发送给 FastCGI,FastCGI 中的 Wrapper 进程生成一个线程,将请求交给脚本解释程序执行,然后通过原来的 socket 将解释执行后的结果原路返回给 Nginx, 之后 Nginx 将结果交给客户端。
Nginx 是通过套接字文件 socket 来将动态请求发送给 wrapper, 使用的是 Tcp 协议。wrapper 通过 CGI 接口来接受请求。这样 web 服务器和解释程序之间完全可以独立开发,这样避免了解释程序直接调用服务器的接口而导致的出错和崩溃以及安全性问题。而且可以使 Nginx 专心处理静态页面请求和转发动态请求,而将脚本解释器安装在另一台服务器,使服务器的压力得到分摊。
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 安装时自动生成。
}
————————————– 分割线 ————————————–
CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm
使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm
搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm
CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm
CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm
CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm
Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm
————————————– 分割线 ————————————–
Nginx 的详细介绍 :请点这里
Nginx 的下载地址 :请点这里