A new way called DWS to run php script on nginx 0.8.x !
Michael Shadle
mike503 at gmail.com
Sat Oct 9 13:22:27 MSD 2010
How does this compare to php-fpm? What are its main benefits? Security? Performance? I'd like more comparison points with existing solutions.
On Oct 9, 2010, at 1:47 AM, hightman <hightman at zuaa.zju.edu.cn> wrote:
> PHP-DWS is the abbreviation for "PHP Direct Web Server". It works much like fastcgi server with nginx,
>
> But nginx pass the request header of HTTP and socket file description of this connection to it via
> calling sendmsg(), and then PHP-dws read request body data from http connection , send response
> data to the http connection directly.
>
> I simply draw their work in the following flow diagram:
>
> [PHP-CGI]
> ============
>
> i)request header+body ii)request header+body
> +~~~~>~~~~>~~~~>~~~+ +~~~~~>~~~~~>~~~~>~~~~~+
> | | | |
> /|\ \|/ / \ \|/
> WebVisitor Web Server FastCGIServer
> (user) (nginx) (php-cgi)
> /|\ \ / /|\ \ /
> | | | |
> +~~~<~~~~<~~~~<~~~~+ +~~~~~<~~~~~<~~~~<~~~~~+
> iv)response header+body iii)response header+body
>
> [PHP-DWS]
> ============
>
> i)request header ii)request header
> +~~~~>~~~~>~~~~>~~~+ +~~~~~>~~~~~>~~~~>~~~~~+
> | | | |
> /|\ \|/ / \ \|/
> WebVisitor Web Server DWSCGI Server
> (user) (nginx) (php-dws)
> /|\ \ / /|\ \ /
> | | | |
> | +~~~~~~~~>~~~~~~~~~~~~>~~~~~~~~~~~~>~~~~~~~~+ |
> | iii) request body |
> | |
> +~~~~~~~~~~~~~<~~~~~~~~~~~<~~~~~~~~~~~~~<~~~~~~~~~~~~~~+
> iv)response header+body
>
> I think that php-dws will save much more IO operator and become more efficient.
> In addition, we can send partial data to browser during script running, i.e:
> http://root.twomice.net/dws-test/sleep.phpd
>
> Welcome to give me some suggestions or comments!
>
> ===
>
> I have completed the preliminary work, including two part.
>
> The first is ngx_http_dwsgi_module, download source codes from:
> http://www.hightman.cn/down/nginx_0.8_dwsgi_module_beta1.tgz
>
> Extract it to top source directory of nginx, it will be looked like:
> nginx-0.8.x/src/addon/dwsgi/
>
> then recompile the nginx with option: --add-module=src/addon/dwsgi
>
> config sample can be found in src/addon/dwsgi/*.conf
>
>
> The second is a new sapi module for php, develop under 5.3.3, get the source
> code package from:
> http://www.hightman.cn/down/php53_sapi_dws_beta1.tgz
>
> Extract it to top source directory of php5, it will be looked like:
> php-5.3.x/sapi/dws/
>
> then run following commands to rebuild the php:
> ./buildconf --force
> ./config.nice --disable-fpm --disable-cgi --enable-dws
> make && make install
>
> Run $prefix/bin/php-dwsctl to start or stop php-dws,
> or try $prefix/bin/php-dws -h for more options and its description.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20101009/6d3dbd0e/attachment-0001.html>
More information about the nginx
mailing list