我是靠谱客的博主 自由火龙果,最近开发中收集的这篇文章主要介绍LNMP数据请求处理过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

请求:
http://www.example.com/index.php

1、首先请求到nginx的master主进程,master进程将请求转给worker进程处理。
2、worker进程,根据请求,找到对应的server
server {
listen 80;
server_name www.example.com;
root /var/www/html;
}
3、worker进程根据请求,location规则过滤,判断是动态文件,提交到fastcgi的主进程处理
server {
listen 80; #监听80端口,接收http请求
server_name www.example.com; #就是网站地址
root /usr/local/etc/nginx/www/huxintong_admin; # 准备存放代码工程的路径
#路由到网站根目录www.example.com时候的处理
location / {
index index.php; #跳转到www.example.com/index.php
autoindex on;
}

#当请求网站下php文件的时候,反向代理到php-fpm
location ~ .php$ {
    include /usr/local/etc/nginx/fastcgi.conf; #加载nginx的fastcgi模块
    fastcgi_intercept_errors on;
    fastcgi_pass   127.0.0.1:9000; #nginx fastcgi进程监听的IP地址和端口

fastcgi_pass phpfpm;
}
}
4、fastcgi 的主进程将www.example.com/index.php 提交到php-fpm解析器处理,php-fpm根据 fast-cgi_pass 指定的监听地址,或者socket,提交到对应php服务上处理。
备注:
fastcgi_pass 127.0.0.1:9000;
fastcgi_pass phpfpm;
fastcgi_pass 后面跟的可以是一个ip,也可以是一个socket,如果跟的是地址,则指的是php服务的IP地址。如果跟的是phpfpm,则指的是upstream地址池中的名称:
upstream phpfpm {
server unix:/dev/shm/phpfpm.socket;
}
地址池中,对应的是本地php的socket地址,
cat /usr/local/php/etc/php-fpm.conf
[global]
pid = /var/run/php-fpm. pid
error_log = /usr/local/nginx/logs/php-fpm.log
log_level = notice
[www]
listen = /dev/shm/phpfpm.socket
不论跟的是IP地址,还是socket,实现的都是fastcgi子进程将动态请求,转发到php解析器中,让php去处理,都是用来让fastcgi程序和php-fpm建立连接的,因为fastcgi监听的和php-fpm监听的是一样的,所以是可以建立连接的。

5、php-fpm 处理完请求,返回给nginx,nginx将结果通过http返回给浏览器

最后

以上就是自由火龙果为你收集整理的LNMP数据请求处理过程的全部内容,希望文章能够帮你解决LNMP数据请求处理过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部