184 lines
3.6 KiB
HTML
184 lines
3.6 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Introduction</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.63
|
|
"><LINK
|
|
REL="HOME"
|
|
TITLE="PHHTTPD HTTP Accelerator HOWTO"
|
|
HREF="index.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Copyright and License"
|
|
HREF="copyright.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="Configuration File"
|
|
HREF="configuration.html"></HEAD
|
|
><BODY
|
|
CLASS="SECT1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>PHHTTPD HTTP Accelerator HOWTO</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="copyright.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="configuration.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="INTRODUCTION"
|
|
>2. Introduction</A
|
|
></H1
|
|
><P
|
|
>phhttpd is an HTTP accelerator. It serves fast static HTTP fetches from a
|
|
local file-system
|
|
and passes slower dynamic requests back to a waiting server. It features
|
|
a lean networking I/O core and an aggressive content cache that help it
|
|
perform its job efficiently.</P
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN38"
|
|
>2.1. Architectural Overview</A
|
|
></H2
|
|
><P
|
|
>
|
|
phhttpd features a very slim I/O core. It does all its networking
|
|
work using non-blocking system calls driven by whatever event model
|
|
is most appropriate for the host operating system. This
|
|
allows a single execution context
|
|
to handle as many client connections as the event model dictates.</P
|
|
><P
|
|
>phhttpd's job is to serve static content as quickly as it possibly
|
|
can. To do this it maintains a cache of content in memory. When
|
|
a request is serviced, phhttpd saves a reference to the on disk content
|
|
and whatever HTTP headers are dependent on the content. The next time
|
|
a request for this content is received, phhttpd can service it
|
|
very quickly. This cache can be prepopulated (populated at run time), or can
|
|
be built dynamically as requests come in. Its size may also be
|
|
capped by the administrator so that it doesn't overwhelm a system.</P
|
|
><P
|
|
>phhttpd is a threaded stand alone daemon. The number of threads
|
|
is currently statically defined at run time. Incoming connections
|
|
are evenly balanced among the running threads, regardless of what
|
|
content they may be serving. Connections are served by the thread
|
|
that accepted them until the transfer is done.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN43"
|
|
>2.2. Supported Systems</A
|
|
></H2
|
|
><P
|
|
>phhttpd is currently only expected to build and run on Linux
|
|
systems using glibc2.1 under a kernel that supports passing POLL*
|
|
information over real-time SIGIO signals. This means later 2.3.x
|
|
kernels or a 2.2.x kernel that has been patched. </P
|
|
><P
|
|
>I badly want this to change. If you're interested in doing porting
|
|
work to other Operating Systems, please do let me know.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="copyright.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="configuration.html"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Copyright and License</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
> </TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Configuration File</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |