php和nginx交互实例讲解

yipeiwu_com5年前PHP代码库

Nginx与PHP交互过程的7步走(用户对动态PHP网页访问过程)

  1. step1:用户将http请求发送给nginx服务器(用户和nginx服务器进行三次握手进行TCP连接)。
  2. step2:nginx会根据用户访问的URL和后缀对请求进行判断。
  3. step3:通过第二步可以看出,用户请求的是动态内容,nginx会将请求交给fastcgi客户端,通过fastcgi_pass将用户的请求发送给php-fpm。如果用户访问的是静态资源呢,那就简单了,nginx直接将用户请求的静态资源返回给用户。
  4. step4:fastcgi_pass将动态资源交给php-fpm后,php-fpm会将资源转给php脚本解析服务器的wrapper。
  5. step5:wrapper收到php-fpm转过来的请求后,wrapper会生成一个新的线程调用php动态程序解析服务器。
  6. step6:php会将查询到的结果返回给nginx。
  7. step7:nginx构造一个响应报文将结果返回给用户。

这只是nginx的其中一种,用户请求的和返回用户请求结果是异步进行,即为用户请求的资源在nginx中做了一次中转,nginx可以同步,即为解析出来的资源,服务器直接将资源返回给用户,不用在nginx中做一次中转。

即:Nginx -> FastCGI -> php-fpm -> FastCGI Wrapper -> php解析器

以上7个就是交互的简单步骤,感谢大家的学习和对【宜配屋www.yipeiwu.com】的支持。

相关文章

php 分页原理详解

在看本文之前,请确保你已掌握了PHP的一些知识以及MYSQL的查询操作基础哦。 作为一个Web程序,经常要和不计其数的数据打交道,比如会员的数据,文章数据,假如只有几十个会员那很好办,...

基于命令行执行带参数的php脚本并取得参数的方法

本文分析了基于命令行执行带参数的php脚本并取得参数的方法。分享给大家供大家参考,具体如下: 一、为什么我们要在命令行下运行php脚本呢? 个人理解,主要有二个原因: 1. 利用cron...

PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题

昨天同事遇到一个奇怪的问题,就是以下代码,无法通过JSON校验,也无法通过PHP的json_decode函数解析。 复制代码 代码如下: [     { &...

利用Memcached在php下实现session机制 替换PHP的原生session支持

方法文件 session实现文件:memcachedsession.php 实现原理(也是PHP内部session的实现原理): 1.先判断客户端有没有sessionid, a.没有就添...

解决文件名解压后乱码的问题 将文件名进行转码的代码

复制代码 代码如下: <?php $a=zip_open('other.zip'); while ($e=zip_read($a)){ $fz = zip_entry_filesi...