Chinaunix

标题: PHP-dws: 一个 nginx-0.8.x 上跑 php 的新方式 [打印本页]

作者: hightman    时间: 2010-10-09 19:46
标题: PHP-dws: 一个 nginx-0.8.x 上跑 php 的新方式
本帖最后由 hightman 于 2010-10-09 19:48 编辑

1. 关于 php-dws

php-dws 是 PHP Direct Web Server 的缩写, 是针对 php 的一个新型 sapi 工作模块,
通过 dwsgi 协议与 web server (如 nginx) 协同工作.

之所以叫 Direct , 是因为它在执行 php 脚本过程中是直接把输出结果传递给 http client 的
而不是转交 webserver(nginx) 再由 webserver 发送给 http client.

在多数情况下, php-dws 可以用于取代 php/fastcgi 的工作, 并且能更出色的完成.
详细了解请进这个贴子
  1.       [PHP-CGI]
  2.       ============
  3.               
  4.             i)request header+body     ii)request header+body
  5.            +~~~~>~~~~>~~~~>~~~+     +~~~~~>~~~~~>~~~~>~~~~~+
  6.            |                  |     |                      |
  7.           /|\                \|/   / \                    \|/
  8.       WebVisitor             Web Server               FastCGIServer
  9.         (user)                (nginx)                  (php-cgi)
  10.           /|\                \ /   /|\                    \ /
  11.            |                  |     |                      |
  12.            +~~~<~~~~<~~~~<~~~~+     +~~~~~<~~~~~<~~~~<~~~~~+
  13.           iv)response header+body    iii)response header+body

  14.       [PHP-DWS]
  15.       ============

  16.                         i)request header           ii)request header
  17.            +~~~~>~~~~>~~~~>~~~+     +~~~~~>~~~~~>~~~~>~~~~~+
  18.            |                  |     |                      |
  19.           /|\                \|/   / \                    \|/
  20.       WebVisitor             Web Server               DWSCGI Server
  21.         (user)                (nginx)                   (php-dws)
  22.        /|\  \ /                                         /|\   \ /
  23.         |    |                                           |     |
  24.         |    +~~~~~~~~>~~~~~~~~~~~~>~~~~~~~~~~~~>~~~~~~~~+     |
  25.         |     iii) request body                                |
  26.         |                                                      |
  27.         +~~~~~~~~~~~~~<~~~~~~~~~~~<~~~~~~~~~~~~~<~~~~~~~~~~~~~~+   
  28.         iv)response header+body
复制代码
2. 安装与配置

相对比较复杂,包括 NGINX 模块和 PHP的 sapi 模块2个部分,详细进入我的论坛查看吧
http://www.hightman.cn/bbs/forumdisplay.php?fid=15

3. 后话
php-dws 还是一个实验性的产品,不推荐运行在生产环境,由于其另类的方式在某些WEB应用的
场合可能有需求。php-dws 的特别应用示例
或点击查看这个刷新显示效果:http://root.twomice.net/dws-test/sleep.phpd
作者: renxiao2003    时间: 2010-10-09 22:25
学习了啊。
作者: a.a    时间: 2010-10-12 16:17
它是怎样接管请求然后,将数据直接发送给client的?
作者: hightman    时间: 2010-10-13 20:39
它是怎样接管请求然后,将数据直接发送给client的?
a.a 发表于 2010-10-12 16:17


man sendmsg
作者: hfh08    时间: 2010-10-19 17:33
好东西 牛 x
作者: ecjtubaowp    时间: 2010-10-20 08:48
强悍,看看。
作者: maochanglu    时间: 2010-10-20 10:23
dwsgi 协议 是谁发明的?
作者: 静意    时间: 2010-11-01 10:22
实现这样确实不错,能减轻一些nginx的压力。
作者: dnybz    时间: 2010-11-06 11:34
资源占用,有没有优点?
作者: charming72    时间: 2010-11-08 16:45
好像间接说明了C/S结构要优于B/S结构:wink:
作者: wangcunjiang    时间: 2010-11-26 14:50
这个可能有问题吧,如果你的php在内网,nginx是做反向代理的,你的php怎么和client直接交互?
作者: suntoltti    时间: 2010-11-27 11:26
回复 12# wangcunjiang


   你不明白什么是socket 不存在你说的这种问题了  只要得到fd 哪管你说的什么内网不内网
作者: amazergling    时间: 2010-11-30 14:40
好像nginx的负载能力非凡,不知道这么做能再提高多少性能。
作者: hq8318    时间: 2010-12-24 16:23
学习了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2