请求接口到数据返回过程

下边是自己的个人理解如果有问题还请大家指正:

用户通过浏览器访问域名,域名通过DMS服务器解析到IP,浏览器向服务器80端口或者8080端口(HTTP协议使用80/8080端口,HTTPS使用443端口)发起TCP连接请求。
web服务器nginx的虚拟主机server监听80/8080端口,接收到请求以后,可以通过检查‘Host’来判定客户程序请求是哪个虚拟主机的服务,然后在进行下一步的处理。
server
{
listen 80;
server_name local.php.com;
index index.html index.htm index.php
root /data/wwwroot/php/public
}

server_name 的 local.php.com映射到了data/wwwroot/php/public/index.php;

location ~ .php {
fastcgi_index /index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED documentrootdocument_rootfastcgi_path_info;
fastcgi_param SCRIPT_FILENAME documentrootdocument_rootfastcgi_script_name;
}

location ~ .php{ } 代表一个能匹配对应uri的location,配置fastcgi_pass 127.0.0.1:9000意思是将进入到该location内的uri请求看做是cgi程序,并将请求发送到9000端口,交由php-fpm来处理。

PHP脚本处理请求访问DB获取数据返回给nginx
nginx将结果通过HTTP返回给浏览器

请求接口到数据返回过程
下边解释一下什么事fastcgi:
FastCGI进程管理器(也就是php-fpm)启动时会创建一个主进程和多个CGI解释器进程(Worker进程),然后等待Web服务器的连接。
Web服务器接收HTTP请求后,将CGI报文通过套接字(UNIX或TCPSocket)进行通信,将环境变量和请求数据写入标准输入,转发到CGI解释器进程。
CGI解释器进程完成处理后将标准输出和错误信息从同一连接返回给Web服务器。