当前位置: 首页 > news >正文

LAMP 架构中,为什么 mod_php 模式 和 FastCGI 模式相比,处理 HTTP 请求时,前者基本上不会出现 502(网关错误)?

LAMP 架构中,为什么 mod_php 模式 和 FastCGI 模式相比,处理 HTTP 请求时,前者基本上不会出现 502(网关错误)?

mod_php 模式下,动态请求是由同一个进程,也就是 Apache 接收到动态请求后,使用 mod_php 模块调用 PHP 解释器处理请求。动态请求的处理在同一进程内完成,不涉及额外的进程通信,因此不会出现上游服务不可达导致的 502 错误;


FastCGI 模式下,Web 服务器需要通过 socket 或 TCP 与 PHP-FPM 通信,一旦 PHP-FPM 不可用,就会返回 502 错误。

FastCGI 模式,HTTP 请求出现 502 的常见原因如下:

1、PHP-FPM 挂了,不能和PHP-FPM通信,连不上就提示 502

2、PHP-FPM 的进程池满了,也就是把请求丢过来,但是没人处理,超时了就提示 502

3、PHP 脚本执行时间太长了,超过了 fastcgi_read_timeout 指定的参数,也会返回 502