Stripped and Tweaked httpd.conf

Apache's default httpd.conf is ironically difficult to read because there are so many comments. Also, there are some evil defaults, like fancy indexing's NameWidth and lacking the vhost name in CustomLog. The following config file is very generalized with nice tweaks and nearly all of the per-host config at the end.


 * 1) httpd.conf -- Apache HTTP server configuration file
 * 2) To disable SSL, mod_perl or mod_php, just comment out the related LoadModule
 * 3) and AddModule directives.  The other knobs are all in  blocks.
 * 1) To disable SSL, mod_perl or mod_php, just comment out the related LoadModule
 * 2) and AddModule directives.  The other knobs are all in  blocks.

ServerType standalone ServerRoot "/usr/local" PidFile /var/run/httpd.pid ScoreBoardFile /var/run/httpd.scoreboard Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 MinSpareServers 1 MaxSpareServers 5 StartServers 1 MaxClients 10 MaxRequestsPerChild 100
 * 1) Section 1: Global Environment

LoadModule mmap_static_module libexec/apache/mod_mmap_static.so LoadModule vhost_alias_module libexec/apache/mod_vhost_alias.so LoadModule env_module        libexec/apache/mod_env.so LoadModule config_log_module  libexec/apache/mod_log_config.so LoadModule mime_magic_module  libexec/apache/mod_mime_magic.so LoadModule mime_module        libexec/apache/mod_mime.so LoadModule negotiation_module libexec/apache/mod_negotiation.so LoadModule status_module      libexec/apache/mod_status.so LoadModule info_module        libexec/apache/mod_info.so LoadModule includes_module    libexec/apache/mod_include.so LoadModule autoindex_module   libexec/apache/mod_autoindex.so LoadModule dir_module         libexec/apache/mod_dir.so LoadModule cgi_module         libexec/apache/mod_cgi.so LoadModule asis_module        libexec/apache/mod_asis.so LoadModule imap_module        libexec/apache/mod_imap.so LoadModule action_module      libexec/apache/mod_actions.so LoadModule speling_module     libexec/apache/mod_speling.so LoadModule alias_module       libexec/apache/mod_alias.so LoadModule rewrite_module     libexec/apache/mod_rewrite.so LoadModule access_module      libexec/apache/mod_access.so LoadModule auth_module        libexec/apache/mod_auth.so LoadModule anon_auth_module   libexec/apache/mod_auth_anon.so LoadModule db_auth_module     libexec/apache/mod_auth_db.so LoadModule digest_module      libexec/apache/mod_digest.so LoadModule proxy_module       libexec/apache/libproxy.so LoadModule cern_meta_module   libexec/apache/mod_cern_meta.so LoadModule expires_module     libexec/apache/mod_expires.so LoadModule headers_module     libexec/apache/mod_headers.so LoadModule usertrack_module   libexec/apache/mod_usertrack.so LoadModule log_forensic_module libexec/apache/mod_log_forensic.so LoadModule unique_id_module   libexec/apache/mod_unique_id.so LoadModule setenvif_module    libexec/apache/mod_setenvif.so
 * 1) To be able to use the functionality of a module which was built as a DSO you
 * 2) have to place corresponding `LoadModule' lines at this location so the
 * 3) directives contained in it are actually available _before_ they are used.
 * 4) Please read the file http://httpd.apache.org/docs/dso.html for more
 * 5) details about the DSO mechanism and run `httpd -l' for the list of already
 * 6) built-in (statically linked and thus always available) modules in your httpd
 * 7) binary.
 * 8) Note: The order in which modules are loaded is important.  Don't change
 * 9) the order below without expert advice.
 * 1) the order below without expert advice.
 * 1) LoadModule userdir_module    libexec/apache/mod_userdir.so
 * 1) LoadModule ssl_module        libexec/apache/libssl.so
 * 2) local additions
 * 3) LoadModule perl_module       libexec/apache/libperl.so
 * 4) LoadModule php3_module       libexec/apache/libphp3.so
 * 5) LoadModule php4_module       libexec/apache/libphp4.so

ClearModuleList AddModule mod_mmap_static.c AddModule mod_vhost_alias.c AddModule mod_env.c AddModule mod_log_config.c AddModule mod_mime_magic.c AddModule mod_mime.c AddModule mod_negotiation.c AddModule mod_status.c AddModule mod_info.c AddModule mod_include.c AddModule mod_autoindex.c AddModule mod_dir.c AddModule mod_cgi.c AddModule mod_asis.c AddModule mod_imap.c AddModule mod_actions.c AddModule mod_speling.c AddModule mod_alias.c AddModule mod_rewrite.c AddModule mod_access.c AddModule mod_auth.c AddModule mod_auth_anon.c AddModule mod_auth_db.c AddModule mod_digest.c AddModule mod_proxy.c AddModule mod_cern_meta.c AddModule mod_expires.c AddModule mod_headers.c AddModule mod_usertrack.c AddModule mod_log_forensic.c AddModule mod_unique_id.c AddModule mod_so.c AddModule mod_setenvif.c
 * 1) Reconstruction of the complete module list from all available modules
 * 2) (static and shared ones) to achieve correct module execution order.
 * 3) [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO]
 * 1) AddModule mod_userdir.c
 * 1) AddModule mod_ssl.c
 * 2) local additions
 * 3) AddModule mod_perl.c
 * 4) AddModule mod_php3.c
 * 5) AddModule mod_php4.c

Listen *:80 NameVirtualHost *:80        Listen *:443 NameVirtualHost *:443  User www Group www
 * 1) Section 2: 'Main' server configuration
 * 2) All of these directives may appear inside  containers.

 Options All MultiViews AllowOverride All Order allow,deny Allow from all 

       UserDir www 

       DirectoryIndex index.html index.htm index.txt index.shtml index.cgi index.pl index.epl index.php 

AccessFileName .htaccess  Order allow,deny Deny from all Satisfy All 

UseCanonicalName Off

       TypesConfig /usr/local/etc/apache/mime.types  DefaultType text/plain        MIMEMagicFile /usr/local/etc/apache/magic </IfModule>

HostnameLookups Off ErrorLog /var/log/httpd-errors LogLevel warn LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog /var/log/httpd-access combined
 * 1) Logging
 * 2) Possible values include: debug, info, notice, warn, error, crit, alert, emerg.

ServerSignature On

<IfModule mod_alias.c>       Alias /icons/ "/usr/local/www/icons/" </IfModule>

<IfModule mod_autoindex.c>       IndexOptions FancyIndexing IndexOptions NameWidth=*

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv       AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c       AddIcon /icons/p.gif .pl .py        AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu       AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^

DefaultIcon /icons/unknown.gif

ReadmeName README.html HeaderName HEADER.html

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t </IfModule>

<IfModule mod_mime.c>       AddLanguage da .dk        AddLanguage nl .nl        AddLanguage en .en        AddLanguage et .ee        AddLanguage fr .fr        AddLanguage de .de        AddLanguage el .el        AddLanguage he .he        AddCharset ISO-8859-8 .iso8859-8 AddLanguage it .it       AddLanguage ja .ja        AddCharset ISO-2022-JP .jis AddLanguage kr .kr       AddCharset ISO-2022-KR .iso-kr AddLanguage nn .nn       AddLanguage no .no        AddLanguage pl .po        AddCharset ISO-8859-2 .iso-pl AddLanguage pt .pt       AddLanguage pt-br .pt-br AddLanguage ltz .lu       AddLanguage ca .ca        AddLanguage es .es        AddLanguage sv .sv        AddLanguage cs .cz .cs        AddLanguage ru .ru        AddLanguage zh-TW .zh-tw AddCharset Big5 .Big5 .big5 AddCharset WINDOWS-1251 .cp-1251 AddCharset CP866 .cp866 AddCharset ISO-8859-5 .iso-ru AddCharset KOI8-R .koi8-r AddCharset UCS-2 .ucs2 AddCharset UCS-4 .ucs4 AddCharset UTF-8 .utf8

<IfModule mod_negotiation.c>               LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw        </IfModule>

AddType application/x-tar .tgz

AddEncoding x-compress .Z       AddEncoding x-gzip .gz .tgz </IfModule>

<IfModule mod_setenvif.c>       BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 </IfModule>


 * 1) Local types & handlers (local modules added above)
 * 1) Local types & handlers (local modules added above)

AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl

AddHandler cgi-script .cgi

AddHandler server-parsed .shtml AddType text/html .shtml

AddHandler send-as-is asis

AddHandler imap-file map

AddHandler type-map var

<IfModule mod_perl.c>        SetHandler perl-script PerlHandler Apache::Registry PerlSendHeader On               Options +ExecCGI </Files>

#PerlRequire /usr/local/etc/apache/startup.pl       PerlTaintCheck On        PerlWarn On        PerlFreshRestart On </IfModule>

<IfModule mod_mime.c>       <IfModule mod_php3.c>                AddType application/x-httpd-php3 .phtml .php3 AddType application/x-httpd-php3-source .phps .phps </IfModule> <IfModule mod_php4.c>               AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule> </IfModule>


 * 1) Section 3: Virtual Hosts
 * 2) Virtual Hosts
 * 1) Virtual Hosts

<VirtualHost *:80> ServerName _default_ DocumentRoot /http ServerAdmin bilbo@hobbiton.org </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerName _default_ DocumentRoot /http ServerAdmin bilbo@hobbiton.org SSLEngine On       SSLCertificateFile etc/apache/certs/any.crt SSLCertificateKeyFile etc/apache/certs/any.key </VirtualHost> </IfModule>

<VirtualHost *:80> ServerName elrond.hobbiton.org DocumentRoot /http/elrond.hobbiton.org ServerAdmin bilbo@hobbiton.org </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerName elrond.hobbiton.org DocumentRoot /http/elrond.hobbiton.org ServerAdmin bilbo@hobbiton.org SSLEngine On       SSLCertificateFile etc/apache/certs/any.crt SSLCertificateKeyFile etc/apache/certs/any.key </VirtualHost> </IfModule> <VirtualHost *:80> ServerName www.elrond.hobbiton.org Redirect / http://elrond.hobbiton.org/ </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerName www.elrond.hobbiton.org Redirect / https://elrond.hobbiton.org/ SSLEngine On       SSLCertificateFile etc/apache/certs/any.crt SSLCertificateKeyFile etc/apache/certs/any.key </VirtualHost> </IfModule>