Nginx与php

先看下面的nginx中关于php的配置.

这个location指令把以php为文件后缀的请求,交给127.0.0.1:9000处理.

这是一个C/S架构东西。 而这里的IP地址和端口(127.0.0.1:9000)就是fastcgi进程监听的IP地址和端口。

找到:local/nginx/conf/nginx.conf

Nginx遇到URL路径是以php结尾的都通过9000端口转交给php去处理 。

fastcgi是一个可伸缩地、高速地在http server和动态脚本语言间通信的接口。多数流行的http server都支持fastcgi,

包括apache、nginx和lighttpd等。同时,fastcgi也被许多脚本语言支持,其中就有php

那这个fastcgi的配置IP和端口从何而来呢?在php-fpm.conf中可以看到

php-fpm作为fastcgi的进程管理器,可以有效控制内存和进程,并且平滑重载php配置。php5.3以后,

php-fpm被集成到php的core中,默认安装,无须配置。

fastcgi进程管理器php-fpm自身初始化,启动主进程php-fpm和启动start_servers个fastcgi子进程。

主进程php-fpm主要是管理fastcgi子进程,监听9000端口,fastcgi子进程等待请求。

当客户端请求到达nginx时,nginx通过location指令,将所有以php为后缀的文件都交给 127.0.0.1:9000 来处理。

php-fpm选择并连接到一个fastcgi子进程,并将环境变量和标准输入发送到fastcgi子进程。

fastcgi子进程完成处理后将标准输出和错误信息返回。当fastcgi子进程关闭连接时,请求便告处理完成,等待下次处理。

猜你喜欢

转载自blog.csdn.net/honkkki/article/details/81672955