Difference between revisions of "Server Architecture"

From LVSKB
Jump to: navigation, search
(Software Software)
 
(3 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
=== Multiple-Thread Event-Driven Architecture ===
 
=== Multiple-Thread Event-Driven Architecture ===
  
== Software Software ==
+
== Server Software ==
 +
 
 +
=== Apache ===
 +
 
 +
Apache supports multiple-process architecture and multiple-thread architecture.
  
 
=== nginx ===
 
=== nginx ===
Line 24: Line 28:
  
 
Squid uses the single-process event-driven architecture, because the main process of squid handles all kind of network connections, despite that different processes can handle disk I/O under the diskd configuration.
 
Squid uses the single-process event-driven architecture, because the main process of squid handles all kind of network connections, despite that different processes can handle disk I/O under the diskd configuration.
 +
 +
=== Varnish ===
 +
 +
[[Varnish]] uses the multiple-thread architecture. Each client connection is handled by a separate worker thread, though the main thread uses poll to process events on socket listening.
 +
 +
=== HAProxy ===
 +
 +
[[HAProxy]] uses the single process event-driven architecture.
  
 
== References ==
 
== References ==
Line 29: Line 41:
 
* http://nginx.net/
 
* http://nginx.net/
 
* http://lighttpd.net/
 
* http://lighttpd.net/
 +
* http://varnish.projects.linpro.no/
 +
* http://haproxy.1wt.eu/

Latest revision as of 16:51, 29 August 2009

Server Architecture

Multiple-Process Architecture

Multiple-Thread Architecture

Single-Process Event-Driven Architecture

Multiple-Process Event-Driven Architecture

Multiple-Thread Event-Driven Architecture

Server Software

Apache

Apache supports multiple-process architecture and multiple-thread architecture.

nginx

Nginx supports both the single-process event-driven architecture and the multiple-process event-driven architecture.

lighttpd

Lighttpd uses the single-process event-driven architecture.

squid

Squid uses the single-process event-driven architecture, because the main process of squid handles all kind of network connections, despite that different processes can handle disk I/O under the diskd configuration.

Varnish

Varnish uses the multiple-thread architecture. Each client connection is handled by a separate worker thread, though the main thread uses poll to process events on socket listening.

HAProxy

HAProxy uses the single process event-driven architecture.

References