Nginx+php+cgi+fastcgi的概念

  • 作者:卡牌
  • 时间:2019-02-27
  • 阅读量:66
nginx   php  

NGINX

nginx提供浏览器端与服务器交互的服务,它只能处理静态文件.与apache一样,它只是内容的分发者.如果发现是自己处理不了的文件,根据配置可以将其转发到对应的其他服务上。

比如客户端请求的是index.html,那么会去文件系统中查找这个文件,返回给浏览器。

如果请求的是index.php,根据配置文件,nginx知道它不是静态文件,需要去找PHP解析器来处理,那么他会简单处理这个请求,然后交给PHP解析器。

location ~ \.php$ {
    #include /path/fastcgi.conf;
    include /etc/nginx/fastcgi_params;
    fastcgi_intercept_errors on;
    fastcgi_pass 127.0.0.1:9000;
}

CGI

特点:fork-and-execute

1.当server收到一个php的请求时,会启动一个程序去处理当前的请求,而这个程序就是CGI。

2.CGI会查看phpini的配置并载入、初始化进程并处理请求,这个过程在每一次处理php请求时都会发生,所以会造成严重的资源开销

3.CGI的中文含义是通用网关接口,也就是说只要能够返回标准html数据的服务都可以叫做CGI。所以CGI不单单是php才有的东西

fastCGI

当请求量过大时CGI程序会严重浪费系统资源的。这样fastcgi就是为了解决这个问题。

FastCGI是用来提高CGI程序性能:

首先会由某个程序读取相应的配置文件并初始化执行环境,当这一系列步骤完成之后,他会一下生成很多个cgi进程(也就是进程池。常驻(long-live)型的CGI),这样在以后处理php的请求时就不需要频繁的“读取配置、创建进程、销毁进程这样的步骤了”,所以fastcgi可以理解为就是为了实现这种效果而产生的一种处理办法

php-fpm

是 PHP(Web Application)对 Web Server 提供的 FastCGI 协议的接口程序,额外还提供了相对智能一些任务管理,用来实现fast-cgi的操作。

文章评论

共有0条评论来说两句吧...

提交
Top