IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Nginx+FastCgi+Php 的工作机制

技术 总结 记录 生活 工作 2011-06-01 13:41:04 累计浏览 10,231 次
本机暂存

    近半年一直在做服务迁移的事情,现在遇到一个问题,需要将WebServer从Nginx替换为Apache.

    今天查阅了相关资料:Nginx+FastCgi+Php 的工作机制.

    FastCgi是通讯协议,可以通过Unix套接字或者Tcp进行通讯.Nginx内置基本模块FastCgi模块(控制缓存区大小等功能)

    Nginx通过FastCgi技术和外部的服务或者工具一起工作.Php自己能够运行一个Fastcgi应用程序(php-fcgi)..

    Nginx通过FastCgi协议将请求发送给Php Fastcgi应用程序执行

    编译Php的时候配置--enable-fastcgi.可以通过二种方法运行FastCgi Server

    第一种就是将php编译进FastCgi Server.另外就是借助第三方的wrapper(比如Lighttpd的spawn-fcgi),稳定性更好.

    最后需要配置Nginx将请求发送之Php的本地端口中.Nginx通过Upstream异步的处理后端的请求.总体来说对比Apache+Php的方式更能节省内存.

    而目前PHP-FPM是目前最好的管理PHP的FastCGI处理器.在高版本的Php中已经编译进内核了.

    主要特点就是能动态负载均衡php-fcgi,更好的切换php-fcgi进程.更好的启动和重启php worker(不丢失请求).能够以不同的用户,权限启动.

    而未来支持的特性包括

    1:编译进PHP内核(已完成)

    2:处理模型:自适应的进程swawning.更好的利用多核Cpu

    3:配置文件的定制化

    4:内部处理基于libevent(有必要吗?)

    5:per-pool :定制不通的pool基于不同的PHP.in

    6:更多的工具:比如通过syslog记录日志,动态显示Php处理的状态(Mysql的show proceslist)

    可以查看http://redmine.lighttpd.net/projects/spawn-fcgi/ 的代码实现

同分类推荐文章

  1. SmartPerfetto 2026.06.04-07.17 六周更新复盘:从 v1.0.28 到 v1.1.1 (2026-07-17 00:00:00)
  2. 用 CLIProxyAPI 把 Codex 变成一个 OpenAI 兼容的 API 服务 (2026-07-12 22:05:00)
  3. 读完 Bun 用 Rust 重写:1 个人 11 天重写 50 万行代码是怎么做到的 (2026-07-12 08:00:00)

查看更多 后端 文章 →

建议继续学习

  1. 配置Nginx+uwsgi更方便地部署python应用 (累计阅读 107,667)
  2. 使用gettext来支持PHP的多语言 (累计阅读 39,345)
  3. 搜狐闪电邮箱的 Nginx/Postfix 使用模式 (累计阅读 33,961)
  4. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,227)
  5. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,480)
  6. 记录一个软中断问题 (累计阅读 17,013)
  7. 解析nginx负载均衡 (累计阅读 16,688)
  8. 我的PHP,Python和Ruby之路 (累计阅读 13,216)
  9. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,875)
  10. 15个最好的免费开源电子商务平台 (累计阅读 12,598)