2019独角兽企业重金招聘Python工程师标准>>>

本文介绍 PHP-FPM,Nginx,FastCGI 三者之间的关系,以及 Nginx 反向代理和负载均衡的配置。

PHP-FPM,Nginx,FastCGI 之间的关系

FastCGI 是一个协议,它是应用程序和 WEB 服务器连接的桥梁。Nginx 并不能直接与 PHP-FPM 通信,而是将请求通过 FastCGI 交给 PHP-FPM 处理。

location ~ \.php$ {try_files $uri /index.php =404;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.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.

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;
}location ^~ /data/ {proxy_pass http://ds.filemail.gdrive:8087/;proxy_set_header Host ds.filemail.gdrive;
}

通过 location 匹配 url 路径,将其转发到另外一个服务器处理。

通过负载均衡 upstream 也可以实现反向代理。

Nginx 负载均衡

介绍一下 upstream 模块:

负载均衡模块用于从”upstream”指令定义的后端主机列表中选取一台主机。nginx先使用负载均衡模块找到一台主机,再使用upstream模块实现与这台主机的交互。

负载均衡配置:

upstream php-upstream {ip_hash;server 192.168.0.1;server 192.168.0.2;
}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 后端处理。

原文地址:https://blog.tanteng.me/2017/11/nginx-fastcgi-php-fpm/

转载于:https://my.oschina.net/tanteng/blog/1570607

PHP-FPM,Nginx,FastCGI 三者之间的关系相关推荐

  1. python和pycharm之间的关系_浅析python,PyCharm,Anaconda三者之间的关系

    一.它们是什么? 1.python Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C,Java,C++等,一种编程语言. 2.Anaconda Anaconda指的是一 ...

  2. anaconda中的python如何进行关联分析_浅析python,PyCharm,Anaconda三者之间的关系

    一.它们是什么? Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C,Java,C++等,一种编程语言. 2.Anaconda Anaconda指的是一个开源的Pytho ...

  3. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系

    转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...

  4. 构造函数,对象原型,实例对象三者之间的关系

    撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 1.构造函数,原型对象,实例对象三者之间的关系 每创建一个函数,该函数都会自动带有一个prototype属性.该 ...

  5. 一次性掌握JDK、JRE、JVM的概念以及三者之间的关系【2021整理】

    一.JDK.JRE.JVM概念解析 JDK(Java Development Kit):Java开发工具包,开发人员用来构建Java应用程序的软件包. JRE(Java Runtime Environ ...

  6. Firewalld,iptables概述(netfilter和Firewalld,iptables三者之间的关系,四表五链,Firewalld防火墙的配置方发,SNAT,DNAT了解)

    文章目录 Firewalld,iptables概述 Firewalld了解 iptables了解 Firewalld和iptables的关系 netfilter Firewalld.iptables ...

  7. java map与set的区别_java 集合(list,set,map)三者之间的关系和区别

    原 java 集合(list,set,map)三者之间的关系和区别 一:先上一张关系图,让大家看的更明白. 备注:其中红色部分为实现,其他地方均为接口. 二:各自的特点. List 有序,可重复Arr ...

  8. 美股,港股和A股三者之间的关系和差别

    美股,港股和A股三者之间的关系: 美股,港股和A股三个股票市场是整个股市的重要组成部分,在整个股市中发挥着巨大作用. 美股,港股和A股三者之间的区别: (1)交易时间不同 美股:从每年4月到11月初采 ...

  9. worker进程和task进程区别_worker进程和task进程区别_Storm概念学习系列之Worker、Task、Executor三者之间的关系......

    不多说,直接上干货! Worker.Task.Executor三者之间的关系 Storm集群中的一个物理节点启动一个或者多个Worker进程,集群的Topology都是通过这些Worker进程运行的. ...

最新文章

  1. vscode wecode的配置_使用体验神似VS Code?三步带你了解华为云CloudIDE前世今生
  2. Windows不能识别环境变量的原因。
  3. Vue.directive自定义指令
  4. iphone黑屏转圈_iphone8一直在黑屏转圈
  5. 网络采集库NCrawler
  6. python怎么写接口自动化_python接口自动化 小结
  7. Mac如何关闭触控板防止误触?内置的设置就可以达成
  8. 5、maplotlib中的轴刻度和轴线
  9. J2EE框架学习经典总结
  10. 前端特效 - 前置- - 01. 百叶窗
  11. 只需要这三个步骤让你轻松搞定Maya中贴hdr贴图
  12. 云计算机教室优缺点,云教室和传统机房的区别,终于有人把它说清了
  13. 技术交底书(二)-----一种基于移动终端的安全防护系统
  14. mac电脑出现“XXX” is damaged and can’t be opened. You should move it to the Trash
  15. 计算机是uefi启动 不能装win7,UEFI模式安装Win7系统方法_Win7 Uefi下安装详细教程
  16. 《如何有效阅读一本书》:读再多书,不如先学会如何读书
  17. 实验2014051901:opencv操作摄像头
  18. windows启动管理器_如何在Windows 10中打开任务管理器,方法众多,值得收藏
  19. 发展零碳的重要支柱——光储直柔
  20. 逆向工程实验Lab6

热门文章

  1. LINUX 第五章 apache php mysql
  2. LINUX DNS服务的配置(一)
  3. 节约能源,做个合格的环保主义者,不要做网络灾民
  4. 使用ZFS的十条理由
  5. WIN7自定义管理员账户无法创建或使用设备
  6. BS-GX-018 基于SSM实现在校学生考试系统
  7. 【JOI2017春季合宿】Port Facility
  8. WPF 带水印的密码输入框实现
  9. 前后端分离业务逻辑常用封装函数(一)
  10. linux常用查看硬件设备信息命令