实战Nginx与PHP(FastCGI)的安装、配置与优化[服务器安全]
本文“实战Nginx与PHP(FastCGI)的安装、配置与优化[服务器安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、什么是 FastCGI
FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口.大都风行的HTTP server都支持FastCGI,包含Apache、Nginx和lighttpd等,同时,FastCGI也被很多脚本语言所支持,此中就有PHP.
FastCGI是从CGI发展改良而来的.传统CGI接口方法的主要缺陷是性能很差,因为每次HTTP服务器碰到动态程序时都需求重新启动脚本解析器来履行解析,然后后果被返回给HTTP服务器.这在处理高并发拜候时,几近是不可用的.别的传统的CGI接口方法安全性也很差,目前已经很少被利用了.
FastCGI接口方法采取C/S构造,可以将HTTP服务器和脚本解析服务器脱离,同时在脚本解析服务器上启动一个大概多个脚本解析保护进程.当HTTP服务器每次碰到动态程序时,可以将其直接拜托给FastCGI进程来履行,然后将得到的后果返回给浏览器.这种方法可以让HTTP服务器专一地处理静态恳求大概将动态脚本服务器的后果返回给客户端,这在很大程度上提高了整个利用系统的性能.
2、Nginx+FastCGI运行原理
Nginx不支持对外部程序的直接调用大概解析,全部的外部程序(包含PHP)必须通过FastCGI接口来调用.FastCGI接口在 Linux下是socket,(这个socket可以是文件socket,也可以是ip socket).为了调用CGI程序,还需求一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个 wrapper绑定在某个固定socket上,如端口大概文件socket.当Nginx将CGI恳求发送给这个socket的时刻,通过FastCGI 接口,wrapper采取到恳求,然后派生出一个新的线程,这个线程调用注释器大概外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传送给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作历程.具体的历程,如图1所示.
本文地址: | 与您的QQ/BBS好友分享! |