LNMP WEB架构处理请求过程

1.Nginx为一款高性能Web服务器本身是不能处理PHP的,当接收到客户端浏览器发送HTTP Request请求时,Nginx服务器响应并处理web请求,静态资源CSS、图片、视频、TXT等静态文件请求,Nginx服务器可以直接处理并回应。

2.Nginx并不能直接处理PHP页面PHP动态页面请求Nginx不能直接处理,Nginx服务器会将PHP网页脚本通过接口传输协议(网关协议)PHP-FCGI(Fast-CGI)传输给PHP-FPM(PHP进程管理程序)

3.PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器进程解析PHP脚本信息,处理PHP页面。PHP解析器进程可以启动多个,可以实现多进行并发执行

4.PHP解释器将解析后的脚本返回到PHP-FPM,PHP-FPM再通过Fast-CGI的形式将脚本信息传送给Nginx,Nginx服务器再 通过Http Response的形式传送给浏览器,浏览器再进行解析与渲染然后进行呈现。

CGI、FAST-CGI、PHP-CGI、PHP-FPM概念总结:

  • CGI:Common gateway interface 通用网关接口;   
  • FastCGI:Fast common gateway interface 快速通用网关接口;   
  • PHP-FPM:PHP-Fast CGI Process Manager CGI,是FastCGII协议的实现并且带进程管理器;

PHP-FPM是PHPCGI进程管理器,可以有效控制内存和进程、可以平滑重载PHP配置。    PHP-CGI(PHP解析器进程)是解析PHP代码的程序,属于PHP程序解释器,只负责解析请求,不负责进程管理。

整合PHP和Nginx,配置文件并测试phpinfo();

1.修改/usr/local/nginx/conf/nginx.conf为以下内容[root@www /]# cat /usr/local/nginx/conf/nginx.conf|grep -E -v #|^$worker_processes 1;

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root           /var/www/html;  #指定网站根目录
            fastcgi_pass   127.0.0.1:9000;  #指定fastcgi转发端口.Nginx通过此端口与php进行交互
            fastcgi_index  index.php;  #指定默认索引页(首页)
            fastcgi_param  SCRIPT_FILENAME /var/www/html$fastcgi_script_name;  
        #脚本文件请求的路径,这个配置的意思是在浏览器中访问的.php文件,实际读取的是
$document_root(网站根目录:/var/www/html)下的.php文件
        #也就是说当访问127.0.0.1/index.php的时候,需要读取网站根目录下面的index.php文件,如果没有配置这一配置项时,nginx不会去网站根目录下访问.php文件,所以返回空白

include fastcgi_params;  #调用fastcgi 的变量文件。可以nginx中配置文件里面看到(/usr/local/nginx/conf/),支持上一条参数 } } }

2.保存后重新载入nginx.conf

[root@localhost /]# /usr/local/nginx/sbin/./nginx -s reload

3.在/var/www/html目录下写入index.php

[root@localhost /]# echo "<?php phpindo(); ?>" > /var/www/html/index.php

4.通过浏览器访问ip/index.php

 

版权声明:本文为quail2333原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/quail2333/p/11182427.html