加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

畅聊PHP-FPM、Nginx和FastCGI间的关系

发布时间:2022-07-16 15:17:42 所属栏目:PHP教程 来源:互联网
导读:本篇文章给大家聊聊PHP-FPM、Nginx、FastCGI三者之间的关系,以及 Nginx 反向代理和负载均衡的配置。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 PHP-FPM,Nginx,FastCGI 之间的关系 FastCGI 是一个协议,它是应用程序和 WEB 服务器连
  本篇文章给大家聊聊PHP-FPM、Nginx、FastCGI三者之间的关系,以及 Nginx 反向代理和负载均衡的配置。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
  
  PHP-FPM,Nginx,FastCGI 之间的关系
  FastCGI 是一个协议,它是应用程序和 WEB 服务器连接的桥梁。Nginx 并不能直接与 PHP-FPM 通信,而是将请求通过 FastCGI 交给 PHP-FPM 处理。
 
  
  location ~ .php$ {
 
  
      fastcgi_buffers 16 16k;
 
      fastcgi_buffer_size 32k;
 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 
      include fastcgi_params;
 
  }
 
  这里 fastcgi_pass 就是把所有 php 请求转发给 php-fpm 进行处理。通过 netstat 命令可以看到,127.0.0.1:9000 这个端口上运行的进程就是 php-fpm.
 
  1.png
 
  Nginx 反向代理
  Nginx 反向代理最重要的指令是 proxy_pass,如:
 
  
  location ^~ /seckill_query/ {
 
      proxy_pass http://ris.filemail.gdrive:8090/;
 
      proxy_set_header Host ris.filemail.gdrive;
 
  }
 
   
 
  location ^~ /push_message/ {
 
      proxy_pass http://channel.filemail.gdrive:8090/;
 
      proxy_set_header Host channel.filemail.gdrive;
  
  Nginx 负载均衡
  介绍一下 upstream 模块:
 
  负载均衡模块用于从”upstream”指令定义的后端主机列表中选取一台主机。nginx先使用负载均衡模块找到一台主机,再使用upstream模块实现与这台主机的交互。
 
  负载均衡配置:
 
 
  
  location / {
 
      root   html;
 
      index  index.html index.htm;
 
      proxy_pass http://php-upstream;
 
  }
 
  该例定义了一个 php-upstream 的负载均衡配置,通过 proxy_pass 反向代理指令应用这个配置。这里用的 ip_hash 算法,负载均衡的算法有多种,就不一一列举了。
 
  负载均衡也可以用在 fastcgi_pass 上。
 
  如:
 
 
  fastcgi_pass http://php-upstream
 
  问题
  反向代理和负载均衡是什么关系
  反向代理和负载均衡这两个词经常出现在一起,但他们实际上是不同的概念,负载均衡它更多的是强调的是一种算法或策略,将请求分布到不同的机器上,因此实际上也起到了反向代理的作用。
 
  proxy_pass 和 fastcgi_pass 的区别
  一个是反向代理模块,一个是转发给 factcgi 后端处理。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读