mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-31 19:10:37 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87273 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			153 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 | |
| <HTML>
 | |
|  <HEAD>
 | |
|   <TITLE>Apache module mod_mmap_static</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_mmap_static</H1>
 | |
| 
 | |
|   <P>
 | |
|   This module provides mmap()ing of a statically configured list
 | |
|   of frequently requested but not changed files.  
 | |
| 
 | |
| <P><A
 | |
| HREF="module-dict.html#Status"
 | |
| REL="Help"
 | |
| ><STRONG>Status:</STRONG></A> Experimental
 | |
| <BR>
 | |
| <A
 | |
| HREF="module-dict.html#SourceFile"
 | |
| REL="Help"
 | |
| ><STRONG>Source File:</STRONG></A> mod_mmap_static.c
 | |
| <BR>
 | |
| <A
 | |
| HREF="module-dict.html#ModuleIdentifier"
 | |
| REL="Help"
 | |
| ><STRONG>Module Identifier:</STRONG></A> mmap_static_module
 | |
| </P>
 | |
| 
 | |
|   <H2>Summary</H2>
 | |
|   <P>
 | |
|   This is an <STRONG>experimental</STRONG> module and should be used with
 | |
|   care.  You can easily create a broken site using this module, read this
 | |
|   document carefully.
 | |
|   <CODE>mod_mmap_static</CODE> maps a list of statically configured files (via
 | |
|   <CODE>MMapFile</CODE> directives in the main server configuration) 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 by at least sending it a HUP or USR1 signal (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>
 | |
| 
 | |
|   <H2>Directives</H2>
 | |
|   <UL>
 | |
|    <LI><A HREF="#mmapfile">MMapFile</A>
 | |
|    </LI>
 | |
|   </UL>
 | |
| 
 | |
|   <HR>
 | |
| 
 | |
|   <H2><A NAME="mmapfile">MMapFile</A> directive</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_mmap_static
 | |
|   <BR>
 | |
|   <A
 | |
|    HREF="directive-dict.html#Compatibility"
 | |
|    REL="Help"
 | |
|   ><STRONG>Compatibility:</STRONG></A> Only available in Apache 1.3 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>... it is an experiment after all.
 | |
|   </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>
 | |
| 
 | |
|   Example:
 | |
| 
 | |
|   <PRE>
 | |
|   MMapFile /usr/local/apache/htdocs/index.html
 | |
|   </PRE>
 | |
| 
 | |
|   <P>
 | |
|   <STRONG>Note</STRONG>: don't bother asking for a for a <CODE>MMapDir</CODE>
 | |
|   directive which
 | |
|   recursively maps all the files in a directory.  Use Unix the way it was
 | |
|   meant to be used.  For example, 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 &/' > /www/conf/mmap.conf
 | |
|   </PRE>
 | |
| 
 | |
| <!--#include virtual="footer.html" -->
 | |
|  </BODY>
 | |
| </HTML>
 |