咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
先看下面的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子进程关闭连接时,请求便告处理完成,等待下次处理。