当nginx接收到一个http请求时,通过配置文件找到对应的server。然后匹配server中的所有location,找到最匹配的。而在location中的命令会启动不同的模块去完成工作,比如rewrite模块、index模块。因此在nginx中模块可以看作真正的劳动工作者。nginx的模块是被编译到nginx中的,属于静态方式。启动nginx时,模块被自动加载。不像apache,把模块单独编译成so文件,在配置文件中指定是否加载。所以,单比模块加载方面,nginx也比apache速度上有提升。

那nginx是怎么调用php的呢?先看下面的nginx中关于php的配置location ~ \.php$ {

root /webpath;

fastcgi_pass 127.0.0.1:9000;

...

}

这个location指令把以php为文件后缀的请求,交给127.0.0.1:9000处理。我想你看到这个应该猜到了,这是一个C/S架构东西。 而这里的IP地址和端口(127.0.0.1:9000)就是fastcgi进程监听的IP地址和端口。fastcgi是一个可伸缩地、高速地在http server和动态脚本语言间通信的接口。多数流行的http server都支持fastcgi,包括apache、nginx和lighttpd等。同时,fastcgi也被许多脚本语言支持,其中就有php。

那这个fastcgi的配置IP和端口从何而来呢?在php-fpm.conf中可以看到如下:listen = 127.0.0.1:9000 #这个表示php的fastcgi进程监听的ip地址以及端口

pm.start_servers = 2

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子进程关闭连接时,请求便告处理完成,等待下次处理。

普通的cgi模式是进程 但存在一个问题 每来一个请求 就必须fork一个进程 导致效率缓慢

所以才有了 fast cgi fpm就是 fast cgi manager

fpm的模式也是进程 但他会prefork 就是服务启动的时候 先fork一部分进程等待处理请求。

相关推荐:

nginx php 协同工作,nginx和php之间工作原理相关推荐

  1. nginx配置文件及工作原理详解

    nginx配置文件及工作原理详解 1 nginx配置文件的结构 2 nginx工作原理 1 nginx配置文件的结构 1)以下是nginx配置文件默认的主要内容: #user nobody; #配置用 ...

  2. Nginx源码分析:3张图看懂启动及进程工作原理

    图一:nginx 启动及内存申请过程分析 任何程序都离不开启动和配置解析.ngx 的代码离不开 ngx_cycle_s 和 ngx_pool_s 这两个核心数据结构,所以我们在启动之前先来分析下. 内 ...

  3. 从 Nginx、Apache 工作原理看为什么 Nginx 比 Apache 高效!

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"获取公众号专属群聊入口 来源:rrd.me/gcHFj Nginx才短短几年,就 ...

  4. nginx 判断手机端跳转_nginx基本功能和工作原理

    nginx能做什么 反向代理正向代理负载均衡HTTP服务器(包含动静分离)反向代理和正向代理1.正向代理 简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器能访 ...

  5. Nginx工作原理及相关介绍

    Nginx工作原理及相关介绍 一.Nginx工作原理与模块介绍 1.Nginx基本工作原理 NGINX以高性能的负载均衡器,缓存,和web服务器闻名.Nginx由内核和模块组成,其中,内核的设计非常微 ...

  6. 从Nginx、Apache工作原理看为什么Nginx比Apache高效!

    来源:代码湾 http://codebay.cn/post/8557.html Nginx才短短几年,就拿下了Web服务器大壁江山,众所周知,Nginx在处理大并发静态请求方面,效率明显高于Httpd ...

  7. nginx启动只有master没有worker_深入探索Nginx工作原理

    Nginx 是一个轻量级的HTTP 服务程序,相比其他服务器程序如Apache,Nginx占用内存少,稳定性高,并发处理能力强.同时Nginx 还是一个反向代理服务程序,和邮件代理服务程序.Nginx ...

  8. Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡

    一.什么是正向代理.什么是反向代理 1. 正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器 ...

  9. NGINX工作原理解析

    1 反向代理 1.1 概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给intern ...

最新文章

  1. np.vstack()和np.hstack()
  2. razor中@相对于% %的优势
  3. 手机怎么下载python并安装-CentOS下python的下载及安装
  4. JavaScript解决命名冲突的一种方法
  5. 成功解决TypeError: tuple indices must be integers or slices, not str
  6. STM32 ADC转换实验
  7. 什么是响应式布局设计
  8. java wps linux 安装_ubuntu安装Java开发环境
  9. shell查询年月日(可以作为crontab判断年月日)
  10. win10edge启用html5,win10系统下edge浏览器怎么启用和禁用flash
  11. android matrix 亮度,Android ColorMatrix 亮度矩阵 对比度矩阵 黑白矩阵
  12. matlab怎么新建m file,matlab2020如何建立m文件-matlab创建M-file文件的方法
  13. 【题解】UVA177 分治
  14. 佳能打印机 出现5100错误怎么办
  15. Androidg 改变CheckBox下的选中与未选中图片
  16. 小米路由器安装花生壳实现外网映射
  17. 软件测试需要掌握的技能
  18. KlayGE-001-简介
  19. 常见的POS打印机分类
  20. HTTP/HTTPS协议

热门文章

  1. 带你掌握Vue过滤器filters及时间戳转换
  2. 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU
  3. 图解 Redis丨这就是 RDB 快照,能记录实际数据的
  4. 【华为云技术分享】云图说|超赞!终于有人把云存储“三兄弟”讲清楚了!
  5. git clone --depth=1 -b 4.24
  6. 欢迎各位小伙伴们关注我的公众号,可以随时跟我在微信上进行交流
  7. 图解算法系列笔记(二)
  8. Spark DataFrame小试牛刀
  9. python字典是什么数据_python---基本数据类型 dict(字典)
  10. python函数定义时参数相当于占位符_python中函数的参数