Linux-Arbeitskreis am IfL Hamburg

Webserver Apache

/etc/httpd/httpd.conf

Grundlagen

Die Hauptkonfigurationsdatei des Apache.

ServerType, Port, ErrorLog und andere hier nicht aufgeführte Einstellungen sollte man so lassen.

User
Dies ist die User-ID, unter welcher Apache auf die Seiten zugreift. Der eingestellte Wert, nobody, müßte für die meisten Belange das richtige sein. CGI-Skripts werden ebenfalls mit dieser UID gestartet. (Will sagen: wer dies auf root oder 0 setzt ist selber schuld)
Group
Siehe User. Die Gruppen-ID, mit der Apache auf die Seiten zugreift.
ServerAdmin
Adresse, an die Beschwerden usw. geschickt werden sollen. Bei der Autokonfiguration ist das der durch die Variable WWW_ADMIN festgelegte Benutzer auf dem Rechner, auf dem auch der WWW-Server läuft.
PidFile
In dieser Datei wird die Prozeß-ID des WWW-Servers abgelegt. Nützlich zum gezielten Neustart des Apache. Dazu holt man sich die PID des HTTP-Dämons (in <ServerRoot>/<PidFile> zu finden) und killt ihn mit dem HUP-Signal. (mehr dazu mit man kill).
ServerName
Der Name des Rechners (etwa server.osterbek oder www.hh.schule.de).
CacheNegotiatedDocs
Wenn der HTTP-Dämon dieses Statement in httpd.conf findet, läßt er zu, daß die Seiten, von denen es mehrere Versionen gibt (etwa in Deutsch, Französisch und Englisch) gecached werden.
Timeout
Gibt an, wieviele Sekunden der Server auf etwas warten soll, was kommen sollte, aber nicht kommt.
MinSpareServers und MaxSpareServers
Gibt an, wieviele Kopien seiner selbst minimal bzw. maximal in Reserve sein sollten.
StartServers
Wieviele Kopien seiner Selbst der HTTP-Dämon anfangs produzieren soll.
KeepAlive
Die HTTP-Erweiterung HTTP-KeepAlive. Wenn man Probleme mit hängenden Servern in Verbindung mit Netscape 2.0 hat, kann man 0 (in Worten: Null) hier eintragen, um HTTP-KeepAlive zu disablen. (Zumindest stand irgendwo, daß Netscape 2.0 mit KeepAlive Probleme bereiten kann...)
MaxClients
Dies ist hauptsächlich als Notbremse für amoklaufende HTTP-Dämonen gedacht. Dies ist die Obergrenze an httpd-Kopien, die es maximal geben kann. Wird diese Grenze überschritten, so werden die Clients mit einer Fehlermeldung abgespeist.
ProxyRequests
"ProxyRequests On" erlaubt den Betrieb des Apache als WWW-Proxy. Dabei ist es sinnvoll, zusätzlich den WWW-Cache zu aktivieren, indem man bei den Zeilen "#CacheRoot" usw. die '#' entfernt und das CacheRoot-Verzeichnis anlegt. Beim NoCache-Statement sollte man zumindest die eigene Domain eintragen.

Dateiinhalt

# This is the main server configuration file. See URL http://www.apache.org/
# for instructions.

# Do NOT simply read the instructions in here without understanding
# what they do, if you are unsure consult the online docs. You have been
# warned.  

# Originally by Rob McCool

# ServerType is either inetd, or standalone.

ServerType standalone

# If you are running from inetd, go to "ServerAdmin".

# Port: The port the standalone listens to. For ports < 1023, you will
# need httpd to be run as root initially.

Port 80

# HostnameLookups: Log the names of clients or just their IP numbers
#   e.g.   www.apache.org (on) or 204.62.129.132 (off)
HostnameLookups on

# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  

# User/Group: The name (or #number) of the user/group to run httpd as.
#  On SCO (ODT 3) use User nouser and Group nogroup
#  On HPUX you may not be able to use shared memory as nobody, and the
#  suggested workaround is to create a user www and use that user.
User wwwrun
Group httpd

# The following directive disables keepalives and HTTP header flushes for
# Netscape 2.x and browsers which spoof it. There are known problems with
# these

BrowserMatch Mozilla/2 nokeepalive

# ServerAdmin: Your address, where problems with the server should be
# e-mailed.

ServerAdmin root

# ServerRoot: The directory the server's config, error, and log files
# are kept in

ServerRoot /usr/local/httpd

# BindAddress: You can support virtual hosts with this option. This option
# is used to tell the server which IP address to listen to. It can either
# contain "*", an IP address, or a fully qualified Internet domain name.
# See also the VirtualHost directive.

#BindAddress *

# ErrorLog: The location of the error log file. If this does not start
# with /, ServerRoot is prepended to it.

ErrorLog /var/log/httpd.error_log

# TransferLog: The location of the transfer log file. If this does not
# start with /, ServerRoot is prepended to it.

TransferLog /var/log/httpd.access_log

# PidFile: The file the server should log its pid to
PidFile /var/run/httpd.pid

# ScoreBoardFile: File used to store internal server process information.
# Not all architectures require this.  But if yours does (you'll know because
# this file is created when you run Apache) then you *must* ensure that
# no two invocations of Apache share the same scoreboard file.
ScoreBoardFile /var/log/apache_status

# ServerName allows you to set a host name which is sent back to clients for
# your server if it's different than the one the program would get (i.e. use
# "www" instead of the host's real name).
#
# Note: You cannot just invent host names and hope they work. The name you 
# define here must be a valid DNS name for your host. If you don't understand
# this, ask your network administrator.

#ServerName your.server.name.edu

# CacheNegotiatedDocs: By default, Apache sends Pragma: no-cache with each
# document that was negotiated on the basis of content. This asks proxy
# servers not to cache the document. Uncommenting the following line disables
# this behavior, and proxies will be allowed to cache the documents.

#CacheNegotiatedDocs

# Timeout: The number of seconds before receives and sends time out

Timeout 300

# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.

KeepAlive On

# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We reccomend you leave this number high, for maximum performance.

MaxKeepAliveRequests 100

# KeepAliveTimeout: Number of seconds to wait for the next request

KeepAliveTimeout 15

# Server-pool size regulation.  Rather than making you guess how many
# server processes you need, Apache dynamically adapts to the load it
# sees --- that is, it tries to maintain enough server processes to
# handle the current load, plus a few spare servers to handle transient
# load spikes (e.g., multiple simultaneous requests from a single
# Netscape browser).

# It does this by periodically checking how many servers are waiting
# for a request.  If there are fewer than MinSpareServers, it creates
# a new spare.  If there are more than MaxSpareServers, some of the
# spares die off.  These values are probably OK for most sites ---

MinSpareServers 5
MaxSpareServers 10

# Number of servers to start --- should be a reasonable ballpark figure.

StartServers 5

# Limit on total number of servers running, i.e., limit on the number
# of clients who can simultaneously connect --- if this limit is ever
# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
# It is intended mainly as a brake to keep a runaway server from taking
# Unix with it as it spirals down...

MaxClients 150

# MaxRequestsPerChild: the number of requests each child process is
#  allowed to process before the child dies.
#  The child will exit so as to avoid problems after prolonged use when
#  Apache (and maybe the libraries it uses) leak.  On most systems, this
#  isn't really needed, but a few (such as Solaris) do have notable leaks
#  in the libraries.

MaxRequestsPerChild 30

#
# Read config files from /etc/httpd
#
ResourceConfig  /etc/httpd/srm.conf
AccessConfig    /etc/httpd/access.conf
TypesConfig     /etc/httpd/mime.types

# Proxy Server directives. Uncomment the following line to
# enable the proxy server:

#ProxyRequests On

# To enable the cache as well, edit and uncomment the following lines:

#CacheRoot /usr/local/etc/httpd/proxy
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a_domain.com another_domain.edu joes.garage_sale.com

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the VirtualHost command

#Listen 3000
#Listen 12.34.56.78:80

# VirtualHost: Allows the daemon to respond to requests for more than one
# server address, if your server machine is configured to accept IP packets
# for multiple addresses. This can be accomplished with the ifconfig 
# alias flag, or through kernel patches like VIF.

# Any httpd.conf or srm.conf directive may go into a VirtualHost command.
# See alto the BindAddress entry.
 
#<VirtualHost host.some_domain.com>
#ServerAdmin webmaster@host.some_domain.com
#DocumentRoot /www/docs/host.some_domain.com
#ServerName host.some_domain.com
#ErrorLog logs/host.some_domain.com-error_log
#TransferLog logs/host.some_domain.com-access_log
#</VirtualHost>