Location规则匹配优先级总结如下:
(location =) >
(location 完整路径) >
(location ^~ 路径) >
(location |* 正则顺序) >
(location 部分起始路径) >
(location /)
LNMP原理:
多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等。同时,FastCGI也被许多脚本语言支持,其中就有PHP,perl。
FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后将结果返回给HTTP服务器。这在处理高并发访问时几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少使用了
CGI:common gateway interface 通用网关接口
FastCGI:fast common gateway interface 快速通用网关接口
PHP-FPM:PHP-Fast CGI Process Manager
php-cgi是CGI协议的实现,
PHP-fpm是FastCGI协议的执行进程管理器,用来管理php-cgi进程处理php请求包。
CGI 就是web服务器如nginx跟后端动态脚本语言如PHP通信的协议接口。
FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器(PHP)分开,同时在(PHP)脚本解析服务器上启动一个或者多个脚本解析守护进程php-cgi|php-fpm。当nginx服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程管理器(php-fpm)来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。
FastCGI是一个协议,php-fpm实现了这个协议,php-fpm的FastCGI协议需要有进程池,php-fpm实现的FastCGI进程叫php-cgi,所以php-fpm其实是他自身的FastCGI或php-cgi进程管理器