Stripped and Tweaked httpd.conf
From Devpit
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.
##
## httpd.conf -- Apache HTTP server configuration file
##
# To disable SSL, mod_perl or mod_php, just comment out the related LoadModule
# and AddModule directives. The other knobs are all in <IfModule> blocks.
### Section 1: Global Environment
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
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Please read the file http://httpd.apache.org/docs/dso.html for more
# details about the DSO mechanism and run `httpd -l' for the list of already
# built-in (statically linked and thus always available) modules in your httpd
# binary.
#
# Note: The order in which modules are loaded is important. Don't change
# the order below without expert advice.
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 userdir_module libexec/apache/mod_userdir.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
#LoadModule ssl_module libexec/apache/libssl.so
# local additions
#LoadModule perl_module libexec/apache/libperl.so
#LoadModule php3_module libexec/apache/libphp3.so
#LoadModule php4_module libexec/apache/libphp4.so
# Reconstruction of the complete module list from all available modules
# (static and shared ones) to achieve correct module execution order.
# [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO]
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_userdir.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
#AddModule mod_ssl.c
# local additions
#AddModule mod_perl.c
#AddModule mod_php3.c
#AddModule mod_php4.c
### Section 2: 'Main' server configuration
# All of these directives may appear inside <VirtualHost> containers.
Listen *:80
NameVirtualHost *:80
<IfModule mod_ssl.c>
Listen *:443
NameVirtualHost *:443
</IfModule>
User www
Group www
<Directory />
Options All MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<IfModule mod_userdir.c>
UserDir www
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.txt index.shtml index.cgi index.pl index.epl index.php
</IfModule>
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
UseCanonicalName Off
<IfModule mod_mime.c>
TypesConfig /usr/local/etc/apache/mime.types
</IfModule>
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile /usr/local/etc/apache/magic
</IfModule>
# Logging
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
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
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>
################################################################################
## 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>
<Files *.pl>
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>
### Section 3: Virtual Hosts
################################################################################
## 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>

