正在理解中,查阅资料,加上自我理解,得出如下结论,如有错误,欢迎指正。。。。

LNP环境,Nginx与PHP配合运行的原理解释:

以前的互联网时代我们成为web1.0时代,那时用户是被动接受网络信息,服务器上有什么你就看什么,你不能往服务器上传东西,并且主要以静态文件为主,几乎没有动态程序,所以Nginx处理起来很轻松。但是随着祖国的强大,时代和技术的进步,web2.0时代来临,用户为主,动态语言也流行了起来,例如php、java等,所以网络上动态请求就多了起来,但是Nginx有不能处理动态请求,所以随之而来的动态程序解析器就应运而生了,PHP的解析器,Java的解析器等,但是问题来了,Nginx怎么把接受到的动态请求交给解析器呢?解析器处理之后又怎么返回给Nginx呢?所以出现了CGI(common gateway interface)通用网关接口,通过这个接口实现两者之间的通信,怎么通信呢?

CGI的特点是,每接到一个请求就启动解析器,fork一个进程来解析,完成之后呢就把这个进程kill掉,每次都是这样,可想而知,不仅浪费系统资源,还无法处理高并发的请求,满足不了web2.0时代的广大网友。所以FASTCGI出来了,一看名字就比较快,他fork进程之后不kill,保留下来以便下次使用,效率就高了许多。

接着讲Nginx怎么通过这个接口实现通信,Nginx有一个fastcgi模块,Nginx通过fastcgi监听PHP程序运行的地址和端口,当有动态程序访问Nginx时,Nginx通过fastcgi_pass抛给PHP处理,PHP处理完成后通过FASTCGI接口返回给Nginx,然后Nginx返回给用户。那么PHP又是怎么处理的呢?

php收到Nginx抛过来的动态程序时,首先是php-fpm(php fastcgi process manager)php fastcgi 进程管理接收到,然后他会调用一个wrapper线程去激活php解析器,把动态请求解析为op code(操作码)进行处理,之后把处理结果返回给php-fpm,一路返回给用户。

LNP环境下Nginx与PHP配合解析的原理的更多相关文章

  1. 搭建windows环境下(nginx+mysql+php)开发环境

    搭建windows环境下(nginx+mysql+php)开发环境   1. 所需准备应用程序包        1.1 nginx 程序包nginx-1.0.4.zip或其他版本(下载地址: http ...

  2. Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流

    Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流学习笔记 所需条件: nginx-rtmp-module(带rtmp模块) ,链接:https://link.jiansh ...

  3. windows 环境下nginx + tomcat群 + redis 实现session共享

    nginx作为负载均衡根据定义将不同的用户请求分发到不同的服务器,同时也解决了因单点部署服务器故障导致的整个应用不能访问的问题 在加入nginx之后,如果多个服务器中的一个或多个(不是全部)发生故障, ...

  4. virtualenv 环境下 Nginx + Flask + Gunicorn+ Supervisor 搭建 Python Web

    在这篇文章里,我们将搭建一个简单的 Web 应用,在虚拟环境中基于 Flask 框架,用 Gunicorn 做 wsgi 容器,用 Supervisor 管理进程,然后使用 Python 探针来监测应 ...

  5. ubuntu环境下nginx的编译安装以及相关设置

    一.基本的编译与安装 1.安装依赖项 sudo apt-get update sudo apt-get install build-essential zlib1g-dev libpcre3 libp ...

  6. linux环境下Nginx的安装

    因为工作环境大多数都是windows server服务器,仅有的linux服务器同事们都在抢着用,所以特意买了一台阿里云服务器,感兴趣的小伙伴可以了解一下,一年只要293: https://promo ...

  7. windows环境下nginx的启动、停止

    Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启 ...

  8. 记一次虚拟化环境下Windows IO性能的解析

    前言随着云计算技术与服务的发展和进步,越来越多的客户选择将业务部署到云端.但由于引入了虚拟化层,在业务部署过程中经常会遇到IO问题,通常也不易调试.本文主要介绍利用perf.systemtap等工具, ...

  9. 在windows环境下 nginx + .net core 3.1 实现反向代理和负载均衡

    一.创建.net core web 应用 1.首先打开vs2019创建好.net core web应用,简单的注入IConfiguration 便于打印端口号展示效果. 1 private reado ...

随机推荐

  1. noip第9课资料

  2. hdu 4939 三色塔防

    http://acm.hdu.edu.cn/showproblem.php?pid=4939 给出一条长为n个单位长度的直线,每通过一个单位长度需要 t 秒. 有3种塔,红塔可以在当前格子每秒造成 x ...

  3. CSS 基础 例子 最小高度和最大高度设置

    最小高度,无论什么时候,高度不会小于该值,即使内容很少,不限制高度最大值,超出时候,按照实际内容来决定高度 最大高度,无论什么时候,高度不会大于该值,即使内容很多,不限制最小高度,超出时候,多出部分会 ...

  4. 背水一战 Windows 10 (53) - 控件(集合类): ItemsControl 的布局控件 - ItemsStackPanel, ItemsWrapGrid

    [源码下载] 背水一战 Windows 10 (53) - 控件(集合类): ItemsControl 的布局控件 - ItemsStackPanel, ItemsWrapGrid 作者:webabc ...

  5. 【BZOJ3545】 [ONTAK2010]Peaks

    BZOJ3545 [ONTAK2010]Peaks Solution 既然会加强版,直接把强制在线的操作去掉就好了. 代码实现 #include<stdio.h> #include< ...

  6. Flask系列05--Flask的配置config

    一.flask配置 示例说明, 就是使用config进行配置 from flask import Flask ​ app = Flask(__name__) # type:Flask app.conf ...

  7. Mac使用brew安装nginx,并解决端口访问权限问题

    1.安装 brew install nginx 2.修改配置文件 sudo vi /usr/local/etc/nginx/nginx.conf 修改默认的8080端口为80 修改日志文件地方 err ...

  8. Java按时间梯度实现异步回调接口

    1. 背景 在业务处理完之后,需要调用其他系统的接口,将相应的处理结果通知给对方,若是同步请求,假如调用的系统出现异常或是宕机等事件,会导致自身业务受到影响,事务会一直阻塞,数据库连接不够用等异常现象 ...

  9. 05-创建kubectl-kubeconfig文件

    本文档介绍创建 kubeconfig 文件 下载 kubectl $ wget https://dl.k8s.io/v1.6.0/kubernetes-client-linux-amd64.tar.g ...

  10. redo log文件格式描述