summaryrefslogtreecommitdiff
path: root/docs/manual/mod/mod_file_cache.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manual/mod/mod_file_cache.html')
-rw-r--r--docs/manual/mod/mod_file_cache.html268
1 files changed, 0 insertions, 268 deletions
diff --git a/docs/manual/mod/mod_file_cache.html b/docs/manual/mod/mod_file_cache.html
deleted file mode 100644
index 8e8b34325b..0000000000
--- a/docs/manual/mod/mod_file_cache.html
+++ /dev/null
@@ -1,268 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<HTML>
- <HEAD>
- <TITLE>Apache module mod_file_cache</TITLE>
- </HEAD>
-<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
- <BODY
- BGCOLOR="#FFFFFF"
- TEXT="#000000"
- LINK="#0000FF"
- VLINK="#000080"
- ALINK="#FF0000"
- >
-<!--#include virtual="header.html" -->
- <H1 ALIGN="CENTER">Module mod_file_cache</H1>
- <P>
- <STRONG>This module should be used with care. You can easily create a
- broken site using mod_file_cache, so read this document
- carefully.</STRONG>
- </P>
-
- <P>
- <EM>Caching</EM> frequently requested files that change very
- infrequently is a technique for reducing server load. mod_file_cache
- provides two techniques for caching frequently requested
- <EM>static</EM> files.
- Through configuration directives, you can direct mod_file_cache
- to either open then mmap()a file, or to pre-open a file and save
- the file's open <EM>file handle</EM>. Both techniques reduce server
- load when processing requests for these files by doing part of the
- work (specifically, the file I/O) for serving the file when the server
- is started rather than during each request.
- </P>
-
- <P>
- <CODE>mod_file_cache</CODE> is not compiled into the server by
- default. To use <CODE>mod_file_cache</CODE> you have to enable the
- following line in the server build <CODE>Configuration</CODE> file:
- <PRE>
- AddModule modules/experimental/mod_file_cache.o
- </PRE>
- </P>
-
- <P>
- Notice: You cannot use this for speeding up CGI programs or other files
- which are served by special content handlers. It can only be used for
- regular files which are usually served by the Apache core content handler.
- </P>
-
- <P>
- This module is an extension of and borrows heavily from the
- mod_mmap_static module in Apache 1.3.
- </P>
- <H2>Summary</H2>
- <P>
- <CODE>mod_file_cache</CODE> caches a list of statically configured
- files via <CODE>MMapFile</CODE> or <CODE>CacheFile</CODE> directives
- in the main server configuration.
- </P>
-
- <P>
- Not all platforms support both directives. For
- example, Apache on Windows does not currently support the MMapStatic
- directive, while other platforms, like AIX, support both. You will
- receive an error message in the server error log if you attempt to
- use an unsupported directive. If given an unsupported directive, the
- server will start but the file will not be cached. On platforms that
- support both directives, you should experiment with both to see
- which works best for you.
- </P>
-
- <H3><CODE>MmapFile</CODE> Directive </H3>
- <P>
- The <CODE>MmapFile</CODE> directive of <CODE>mod_file_cache</CODE>
- maps a list of statically configured files into memory through the
- system call <CODE>mmap()</CODE>. This system call is available on
- most modern Unix derivates, but not on all. There are sometimes
- system-specific limits on the size and number of files that can be
- mmap()d, experimentation is probably the easiest way to find out.
- </P>
- <P>
- This mmap()ing is done once at server start or restart, only. So whenever
- one of the mapped files changes on the filesystem you <EM>have</EM> to
- restart the server (see the <A HREF="../stopping.html">Stopping and
- Restarting</A> documentation). To reiterate that point: if the
- files are modified <EM>in place</EM> without restarting the server
- you may end up serving requests that are completely bogus. You
- should update files by unlinking the old copy and putting a new
- copy in place. Most tools such as <CODE>rdist</CODE> and
- <CODE>mv</CODE> do this. The reason why this modules doesn't take
- care of changes to the files is that this check would need an extra
- <CODE>stat()</CODE> every time which is a waste and against the
- intent of I/O reduction.
- </P>
-
- <H3><CODE>CacheFile</CODE> Directive </H3>
- <P>
- The <CODE>CacheFile</CODE> directive of <CODE>mod_file_cache</CODE>
- opens an active <EM>handle</EM> or <EM>file descriptor</EM> to the
- file (or files) listed in the configuration directive and places
- these open file handles in the cache. When the file is requested,
- the server retrieves the handle from the cache and passes it to the
- sendfile() (or TransmitFile() on Windows), socket API.
- </P>
- <P>
- Insert more details about sendfile API...
- </P>
- <P>
- This file handle caching is done once at server start or restart,
- only. So whenever one of the cached files changes on the filesystem
- you <EM>have</EM> to restart the server (see the <A
- HREF="../stopping.html">Stopping and Restarting</A> documentation).
- To reiterate that point: if the files are modified <EM>in
- place</EM> without restarting the server you may end up serving
- requests that are completely bogus. You should update files by
- unlinking the old copy and putting a new copy in place. Most tools
- such as <CODE>rdist</CODE> and <CODE>mv</CODE> do this.
- </P>
-
- <H2>Directives</H2>
- <UL>
- <LI><A HREF="#mmapfile">MMapFile</A>
- </LI>
- <LI><A HREF="#cachefile">CacheFile</A>
- </LI>
- </UL>
-
- <HR>
-
- <H2><A NAME="mmapfile">MMapFile</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> MMapFile <EM>filename</EM> [<em>filename</em>] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>None</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server-config
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> <EM>Not applicable</EM>
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_file_cache
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> Only in Apache 1.3 (via
- mod_mmap_statis) or later.
-
- <P>
- The <CODE>MMapFile</CODE> directive maps one or more files (given as
- whitespace separated arguments) into memory at server startup time. They
- are automatically unmapped on a server shutdown. When the files have changed
- on the filesystem at least a HUP or USR1 signal should be send to the server
- to re-mmap them.
- </P>
-
- <P>
- Be careful with the <EM>filename</EM> arguments: They have to literally
- match the filesystem path Apache's URL-to-filename translation handlers
- create. We cannot compare inodes or other stuff to match paths through
- symbolic links <EM>etc.</EM> because that again would cost extra <CODE>stat()</CODE>
- system calls which is not acceptable. This module may or may not work
- with filenames rewritten by <CODE>mod_alias</CODE> or
- <CODE>mod_rewrite</CODE>.
- </P>
-
- Example:
-
- <PRE>
- MMapFile /usr/local/apache/htdocs/index.html
- </PRE>
-
-<hr>
-
- <H2><A NAME="cachefile">CacheFile</A></H2>
- <P>
- <A
- HREF="directive-dict.html#Syntax"
- REL="Help"
- ><STRONG>Syntax:</STRONG></A> CacheFile <EM>filename</EM> [<em>filename</em>] ...
- <BR>
- <A
- HREF="directive-dict.html#Default"
- REL="Help"
- ><STRONG>Default:</STRONG></A> <EM>None</EM>
- <BR>
- <A
- HREF="directive-dict.html#Context"
- REL="Help"
- ><STRONG>Context:</STRONG></A> server-config
- <BR>
- <A
- HREF="directive-dict.html#Override"
- REL="Help"
- ><STRONG>Override:</STRONG></A> <EM>Not applicable</EM>
- <BR>
- <A
- HREF="directive-dict.html#Status"
- REL="Help"
- ><STRONG>Status:</STRONG></A> Experimental
- <BR>
- <A
- HREF="directive-dict.html#Module"
- REL="Help"
- ><STRONG>Module:</STRONG></A> mod_file_cache
- <BR>
- <A
- HREF="directive-dict.html#Compatibility"
- REL="Help"
- ><STRONG>Compatibility:</STRONG></A> Only available in Apache 2.0 or later.
-
- <P>
- The <CODE>CacheFile</CODE> directive opens handles to one or more
- files (given as whitespace separated arguments) and places these
- handles into the cache at server startup time. Handles to cached
- files are automatically closed on a server shutdown. When the files
- have changed on the filesystem, the server should be restarted to
- to re-cache them.
- </P>
-
- <P>
- Be careful with the <EM>filename</EM> arguments: They have to literally
- match the filesystem path Apache's URL-to-filename translation handlers
- create. We cannot compare inodes or other stuff to match paths through
- symbolic links <EM>etc.</EM> because that again would cost extra <CODE>stat()</CODE>
- system calls which is not acceptable. This module may or may not work
- with filenames rewritten by <CODE>mod_alias</CODE> or
- <CODE>mod_rewrite</CODE>.
- </P>
-
- Example:
-
- <PRE>
- CacheFile /usr/local/apache/htdocs/index.html
- </PRE>
-
- <P>
- <STRONG>Note</STRONG>: don't bother asking for a for a directive which
- recursively caches all the files in a directory. Try this
- instead...
- See the <A HREF="core.html#include">Include</A> directive, and consider this command:
- <PRE>
- find /www/htdocs -type f -print \
- | sed -e 's/.*/mmapfile &amp;/' &gt; /www/conf/mmap.conf
- </PRE>
-
-<!--#include virtual="footer.html" -->
- </BODY>
-</HTML>