Upstream config updates (Lucid->Precise)
[sysconfig/apache2.git] / apache2.conf
1 #
2 # Based upon the NCSA server configuration files originally by Rob McCool.
3 #
4 # This is the main Apache server configuration file.  It contains the
5 # configuration directives that give the server its instructions.
6 # See http://httpd.apache.org/docs/2.2/ for detailed information about
7 # the directives.
8 #
9 # Do NOT simply read the instructions in here without understanding
10 # what they do.  They're here only as hints or reminders.  If you are unsure
11 # consult the online docs. You have been warned.  
12 #
13 # The configuration directives are grouped into three basic sections:
14 #  1. Directives that control the operation of the Apache server process as a
15 #     whole (the 'global environment').
16 #  2. Directives that define the parameters of the 'main' or 'default' server,
17 #     which responds to requests that aren't handled by a virtual host.
18 #     These directives also provide default values for the settings
19 #     of all virtual hosts.
20 #  3. Settings for virtual hosts, which allow Web requests to be sent to
21 #     different IP addresses or hostnames and have them handled by the
22 #     same Apache server process.
23 #
24 # Configuration and logfile names: If the filenames you specify for many
25 # of the server's control files begin with "/" (or "drive:/" for Win32), the
26 # server will use that explicit path.  If the filenames do *not* begin
27 # with "/", the value of ServerRoot is prepended -- so "foo.log"
28 # with ServerRoot set to "/etc/apache2" will be interpreted by the
29 # server as "/etc/apache2/foo.log".
30 #
31
32 ### Section 1: Global Environment
33 #
34 # The directives in this section affect the overall operation of Apache,
35 # such as the number of concurrent requests it can handle or where it
36 # can find its configuration files.
37 #
38
39 #
40 # ServerRoot: The top of the directory tree under which the server's
41 # configuration, error, and log files are kept.
42 #
43 # NOTE!  If you intend to place this on an NFS (or otherwise network)
44 # mounted filesystem then please read the LockFile documentation (available
45 # at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>);
46 # you will save yourself a lot of trouble.
47 #
48 # Do NOT add a slash at the end of the directory path.
49 #
50 #ServerRoot "/etc/apache2"
51
52 #
53 # The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
54 #
55 LockFile ${APACHE_LOCK_DIR}/accept.lock
56
57 #
58 # PidFile: The file in which the server should record its process
59 # identification number when it starts.
60 # This needs to be set in /etc/apache2/envvars
61 #
62 PidFile ${APACHE_PID_FILE}
63
64 #
65 # Timeout: The number of seconds before receives and sends time out.
66 #
67 Timeout 300
68
69 #
70 # KeepAlive: Whether or not to allow persistent connections (more than
71 # one request per connection). Set to "Off" to deactivate.
72 #
73 KeepAlive On
74
75 #
76 # MaxKeepAliveRequests: The maximum number of requests to allow
77 # during a persistent connection. Set to 0 to allow an unlimited amount.
78 # We recommend you leave this number high, for maximum performance.
79 #
80 MaxKeepAliveRequests 100
81
82 #
83 # KeepAliveTimeout: Number of seconds to wait for the next request from the
84 # same client on the same connection.
85 #
86 KeepAliveTimeout 5
87
88 ##
89 ## Server-Pool Size Regulation (MPM specific)
90 ## 
91
92 # prefork MPM
93 # StartServers: number of server processes to start
94 # MinSpareServers: minimum number of server processes which are kept spare
95 # MaxSpareServers: maximum number of server processes which are kept spare
96 # MaxClients: maximum number of server processes allowed to start
97 # MaxRequestsPerChild: maximum number of requests a server process serves
98 <IfModule mpm_prefork_module>
99     StartServers          2
100     MinSpareServers       1
101     MaxSpareServers       5
102     MaxClients           50
103     MaxRequestsPerChild   0
104 </IfModule>
105
106 # worker MPM
107 # StartServers: initial number of server processes to start
108 # MinSpareThreads: minimum number of worker threads which are kept spare
109 # MaxSpareThreads: maximum number of worker threads which are kept spare
110 # ThreadLimit: ThreadsPerChild can be changed to this maximum value during a
111 #              graceful restart. ThreadLimit can only be changed by stopping
112 #              and starting Apache.
113 # ThreadsPerChild: constant number of worker threads in each server process
114 # MaxClients: maximum number of simultaneous client connections
115 # MaxRequestsPerChild: maximum number of requests a server process serves
116 <IfModule mpm_worker_module>
117     StartServers          2
118     MinSpareThreads      25
119     MaxSpareThreads      75 
120     ThreadLimit          64
121     ThreadsPerChild      25
122     MaxClients          150
123     MaxRequestsPerChild   0
124 </IfModule>
125
126 # event MPM
127 # StartServers: initial number of server processes to start
128 # MinSpareThreads: minimum number of worker threads which are kept spare
129 # MaxSpareThreads: maximum number of worker threads which are kept spare
130 # ThreadsPerChild: constant number of worker threads in each server process
131 # MaxClients: maximum number of simultaneous client connections
132 # MaxRequestsPerChild: maximum number of requests a server process serves
133 <IfModule mpm_event_module>
134     StartServers          2
135     MinSpareThreads      25
136     MaxSpareThreads      75 
137     ThreadLimit          64
138     ThreadsPerChild      25
139     MaxClients          150
140     MaxRequestsPerChild   0
141 </IfModule>
142
143 # These need to be set in /etc/apache2/envvars
144 User ${APACHE_RUN_USER}
145 Group ${APACHE_RUN_GROUP}
146
147 #
148 # AccessFileName: The name of the file to look for in each directory
149 # for additional configuration directives.  See also the AllowOverride
150 # directive.
151 #
152
153 AccessFileName .htaccess
154
155 #
156 # The following lines prevent .htaccess and .htpasswd files from being 
157 # viewed by Web clients. 
158 #
159 <Files ~ "^\.ht">
160     Order allow,deny
161     Deny from all
162     Satisfy all
163 </Files>
164
165 #
166 # DefaultType is the default MIME type the server will use for a document
167 # if it cannot otherwise determine one, such as from filename extensions.
168 # If your server contains mostly text or HTML documents, "text/plain" is
169 # a good value.  If most of your content is binary, such as applications
170 # or images, you may want to use "application/octet-stream" instead to
171 # keep browsers from trying to display binary files as though they are
172 # text.
173 #
174 # It is also possible to omit any default MIME type and let the
175 # client's browser guess an appropriate action instead. Typically the
176 # browser will decide based on the file's extension then. In cases
177 # where no good assumption can be made, letting the default MIME type
178 # unset is suggested  instead of forcing the browser to accept
179 # incorrect  metadata.
180 #
181 DefaultType None
182
183
184 #
185 # HostnameLookups: Log the names of clients or just their IP addresses
186 # e.g., www.apache.org (on) or 204.62.129.132 (off).
187 # The default is off because it'd be overall better for the net if people
188 # had to knowingly turn this feature on, since enabling it means that
189 # each client request will result in AT LEAST one lookup request to the
190 # nameserver.
191 #
192 HostnameLookups Off
193
194 # ErrorLog: The location of the error log file.
195 # If you do not specify an ErrorLog directive within a <VirtualHost>
196 # container, error messages relating to that virtual host will be
197 # logged here.  If you *do* define an error logfile for a <VirtualHost>
198 # container, that host's errors will be logged there and not here.
199 #
200 ErrorLog ${APACHE_LOG_DIR}/error.log
201
202 #
203 # LogLevel: Control the number of messages logged to the error_log.
204 # Possible values include: debug, info, notice, warn, error, crit,
205 # alert, emerg.
206 #
207 LogLevel warn
208
209 # Include module configuration:
210 Include mods-enabled/*.load
211 Include mods-enabled/*.conf
212
213 # Include all the user configurations:
214 Include httpd.conf
215
216 # Include ports listing
217 Include ports.conf
218
219 #
220 # The following directives define some format nicknames for use with
221 # a CustomLog directive (see below).
222 # If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
223 #
224 LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
225 LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
226 LogFormat "%h %l %u %t \"%r\" %>s %O" common
227 LogFormat "%{Referer}i -> %U" referer
228 LogFormat "%{User-agent}i" agent
229
230
231 # Include of directories ignores editors' and dpkg's backup files,
232 # see README.Debian for details.
233
234 # Include generic snippets of statements
235 Include conf.d/
236
237 # Include the virtual host configurations:
238 Include sites-enabled/