Apache overview
Even though you noticed how simple it was to have the server up and running, it does not mean weakness. The Apache server is a very powerful web server; it comes with all required modules to run a highly sophisticated data center.
This web server includes modules to run ASP and support for FrontPage 2000; complete support of CGI and Pearl.
Here are some of the modes and related descriptions.
Modules
Enable/Disabled
| Shared | Default | Module | Description |
|   |   | Environments |   |
|   | | Mod_env | Set environment variables for CGI/SSI Scripts. |
|   |   | Mod_unique_ID | Unique Identifiers for request |
|   | | Mod_set_envif | Set environment variable based on http headers. |
|   |   | Decisions |   |
|   | | Mode_mine | Content type, encoding |
|   | | Mode_negotiation | Selection of contents based on http Accept headers |
|   | | Mod_mine_magic | Content type, encoding |
|   |   | Directory Handling |   |
|   | | Mode_autoindex | Index file generation |
|   | | Mod_dir | Directory default file handling |
|   |   | Access Control |   |
|   | | Mode_access | Access control, network and users |
|   |   | Mod_auth_dbm | http authentication via Unix NDBM files. |
|   | | Mod_auth | http authentication (user/password) |
|   |   | Mod_auth_db | http authentication via Berkly-DB files |
|   |   | Mod_auth_anon | http authentication for anonymous users |
|   |   | Mod_digest | http digest authentication |
|   |   | URL Mapping |   |
|   |   | Mod_rewrite | Advanced URL translation and redirection |
|   | | Mod_alias | Simple URL translations and redirection |
|   | | Mod_userdir | Selection of resource by user |
|   |   | Mod_speling | Correction of misspelled URLs |
|   |   | Http Response |   |
|   |   | Mod_asis | http raw responses |
|   |   | Mode_cern_meta | Arbitrary http response headers |
|   |   | Mod_expires | http response expiration |
|   |   | Mod_headers | Arbitrary http response headers |
|   |   | Internal content Handler |   |
|   | | Mod_status | Server run time status |
|   |   | Mod_info | Handler for server configuration |
|   |   | Scripting |   |
|   | | Mode_cgi | Common gateway interface support |
|   | | Mode_include | Server side include (SSI) |
|   | | Mod_actions | Map cgi scripts to act as internal handlers |
|   |   | Request Login |   |
|   | | Mod_log_config Mod_log_agent | Customizable http user agent logging |
|   |   | Mod_usertrack | Loggin users click-trails via cookies |
|   |   | Mod_log_refer | Specialized http referrer |
|   |   | Experimental |   |
|   |   | Mod_mmap_static | Caching of served pages via mmap |
|   |   | Development |   |
|   |   | Mod_example | Apache API, for developers only. |
|   |   | Miscellaneous |   |
|   |   | Mod_proxy | Caching proxy module includes, http, ftp,https. |
|   | | Mod_imap | Server_side image map support |
|   |   | Mod_so | Dynamic Shared Object boot strapping |
Table 10.2
All the configuration files for the apache web server are located in the following directory.
/etc/httpd/conf/
Most of the configurations for the web server are done through the httpd.conf file.
To edit the file and make changes you can use any text editor:
[root@server2 conf]# vi httpd.conf
Or
[root@server2 conf]# vi httpd2.conf // for version 9.1 & 9.2
### Main Configuration Section
### You really shouldn't change these settings #unless you're a guru
###
ServerType standalone
ServerRoot /etc/httpd
#ServerName localhost
#LockFile /etc/httpd/httpd.lock
PidFile /var/run/httpd.pid
ScoreBoardFile /etc/httpd/httpd.scoreboard
ErrorLog logs/error_log
LogLevel warn
ResourceConfig /dev/null
AccessConfig /dev/null
DocumentRoot /var/www/html
### Dynamic Shared Object (DSO) Support
###
###
#LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule env_module modules/mod_env.so
LoadModule config_log_module modules/mod_log_config.so
LoadModule agent_log_module modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so
LoadModule includes_module modules/mod_include.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule asis_module modules/mod_asis.so
LoadModule imap_module modules/mod_imap.so
LoadModule action_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule proxy_module modules/libproxy.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule anon_auth_module modules/mod_auth_anon.so
#LoadModule dbm_auth_module modules/mod_auth_dbm.so
#LoadModule db_auth_module modules/mod_auth_db.so
LoadModule digest_module modules/mod_digest.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule example_module modules/mod_example.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
<IfDefine HAVE_PHP4>
LoadModule php4_module extramodules/libphp4.so
<IfDefine>
<IfDefine HAVE_SSL>
LoadModule ssl_module extramodules/libssl.so
</IfDefine>
<IfDefine HAVE_SXNET>
LoadModule sxnet_module extramodules/mod_sxnet.so
</IfDefine>
LoadModule vhost_alias_module modules/mod_vhost_alias.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_env.c
AddModule mod_log_config.c
AddModule mod_log_agent.c
AddModule mod_log_referer.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_proxy.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_dbm.c
#AddModule mod_auth_db.c
AddModule mod_digest.c
#AddModule mod_cern_meta.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
#AddModule mod_example.c
#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
<IfDefine HAVE_PHP4>
AddModule mod_php4.c
</IfDefine>
<IfDefine HAVE_SSL>
AddModule mod_ssl.c
</IfDefine>
<IfDefine HAVE_SXNET>
AddModule mod_sxnet.c
</IfDefine>
AddModule mod_vhost_alias.c
###
### Global Configuration
###
# We now support multiple apache configurations #on the same server. In
# common.conf, we put all directives that are #common to all
# implementations
# (httpd, httpd-perl, etc.)
Include conf/commonhttpd.conf
###
### IP Address/Port and Proxied configuration #section
###
# The APACHEPROXIED setting can be set in #/etc/rc.d/init.d/httpd if you
# are using a proxy or accelerator, like the #Apache-SGI or khttpd, so
# that
# the fast web server serves static content #while Apache handles the
# cgi or php files
#BindAddress *
<IfDefine APACHEPROXIED>
Port 8080
Listen 8080
</IfDefine>
<IfDefine !APACHEPROXIED>
Port 80
Listen 80
</IfDefine>
# Likewise, we can set apache as the server by #default and send perl
# requests via ProxyPass to apache-mod_perl. It #increases performance
# since the perl interpreter is only used for #perl and the standard
# apache
# does all the html and image files, with a #smaller footprint.
#
# If you install apache and apache-mod_perl, #this is the default
# config.
# If you don't want two web servers to use #perl, uninstall apache, and
# apache-mod_perl will not be proxied.
<IfDefine PERLPROXIED>
RewriteEngine on
RewriteRule ^proxy:.* - [F]
RewriteRule ^(.*\/perl\/.*)$ http://%{HTTP_HOST}:8200$1 [P]
RewriteRule ^(.*\/cgi-perl\/.*)$ http://%{HTTP_HOST}:8200$1 [P]
</IfDefine>
###
### Log configuration Section
###
#Single logfile with access, agent and referer #information
#This is the default, if vlogs are not defined #for the main server
CustomLog logs/access_log combined env=!VLOG
#If VLOG is defined in conf/vhosts/Vhost.conf, #we use this entry
CustomLog "|/usr/sbin/advxsplitlogfile" vhost env=VLOG
###
### Virtual Hosts
###
# We include different templates for Virtual #Hosting. Have a look in #the vhosts directory #and modify to suit your needs.
Include conf/vhosts/Vhosts.conf
#Include conf/vhosts/DynamicVhosts.conf
#Include conf/vhosts/VirtualHomePages.conf
###
### Performance settings Section
###
#
# 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 recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait #for the next request from #the same client on #the same connection.
#
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. The default values are #probably OK for most sites.
#
MinSpareServers 4
MaxSpareServers 10
#
# Number of servers to start initially --- #should be a reasonable
# ballpark
# figure.
#
StartServers 4
#
# 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
# the system 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 memory or other #resources. On most systems,
# this
# isn't really needed, but a few (such as #Solaris) do have notable
# leaks
# in the libraries. For these platforms, set to #something like 10000
# or so; a setting of 0 means unlimited.
#
# NOTE: This value does not include keepalive requests after the
# initial
# request per connection. For example, if #a child process handles
# an initial request and 10 subsequent #"keptalive" requests, it
# would only count as 1 request towards #this limit.
#
MaxRequestsPerChild 500
Include conf/addon-modules/php.conf
Include conf/ssl/mod_ssl.conf
Include conf/ssl/ssl.default-vhost.conf
Include conf/mailman.conf
This configuration file tells Apache what to do. To make a line active, just remove the pound sign (#). The next time you restart the server the line will be executed. By default most of the modules are already active; but you may require extra configuration for special requirements.
At the beginning of the file you see this:
DocumentRoot /var/www/html
This line indicates the location of the web pages being served to the public.
There are other files associated to Apache configuration:
apache-mime.types
| // contains all supported applications and formats |
or just mime
| // Multipurpose Internet Mail extensions protocol RFC 1521 and 1522 |
This association is handled in the following ways:
- by the directory in which the file resides
- by file extension
- examining the content of the file
The mime by default carries a content type and allows the server to serve the headers to the browser telling it what type of information is contained within the document requested.
The mime types might be:
- text/plain
- image/gif
- image/bmp
- application/pdf
- video/mpeg
- audio/x-realaudio
- and many others
|