Previous Page | Next Page

  1. Agustin's Linux Manual
  2. Networks & Servers
  3. About the Author
  4. Table of Contents
  5. IP Addresses Networks and Subnets
  6. Network Classes
  7. IP Address in Decimal Notation
  8. Sub-netting
  9. Designing Subnets
  10. Allocating Subnets
  11. Defining Host Addresses
  12. Variable Length Subnet Mask
  13. Routing Protocols
  14. Classless Internet Domain Routing
  15. Servers - Chapter 9
  16. Apache Web Server
  17. Configuring Apache
  18. Uploading Web Pages
  19. Apache Overview
  20. MIMEMagic
  21. DNS Servers
  22. Welcome to Webmin
  23. Creating the Master Domain
  24. Adding the Reverse Zone
  25. Querying the DNS server
  26. Adding Virtual Domain to DNS Server
  27. Reverse Zone for Virtual Zone
  28. Binding IP Address for Virtual Domain
  29. Virtual Web Hosting
  30. DNS Security Options
  31. FTP Server
  32. Securing the FTP Server
  33. Email Server
  34. Postfix Configuration
  35. Dealing with Identical Users
  36. Configuring Email Clients
  37. Configuring Outlook
  38. Samba Server
  39. Configuring SAMBA Server
  40. The smb.conf File
  41. smb.conf Analysis
  42. Adding Users to Samba

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
SharedDefaultModuleDescription
  Environments 
 
  • Mod_envSet environment variables for CGI/SSI Scripts.
      Mod_unique_IDUnique Identifiers for request
     
  • Mod_set_envifSet environment variable based on http headers.
      Decisions 
     
  • Mode_mineContent type, encoding
     
  • Mode_negotiationSelection of contents based on http Accept headers
     
  • Mod_mine_magicContent type, encoding
      Directory Handling 
     
  • Mode_autoindexIndex file generation
     
  • Mod_dirDirectory default file handling
      Access Control 
     
  • Mode_accessAccess control, network and users
      Mod_auth_dbmhttp authentication via Unix NDBM files.
     
  • Mod_authhttp authentication (user/password)
      Mod_auth_dbhttp authentication via Berkly-DB files
      Mod_auth_anonhttp authentication for anonymous users
      Mod_digesthttp digest authentication
      URL Mapping 
      Mod_rewriteAdvanced URL translation and redirection
     
  • Mod_aliasSimple URL translations and redirection
     
  • Mod_userdirSelection of resource by user
      Mod_spelingCorrection of misspelled URLs
      Http Response 
      Mod_asishttp raw responses
      Mode_cern_metaArbitrary http response headers
      Mod_expireshttp response expiration
      Mod_headersArbitrary http response headers
      Internal content Handler 
     
  • Mod_statusServer run time status
      Mod_infoHandler for server configuration
      Scripting 
     
  • Mode_cgiCommon gateway interface support
     
  • Mode_includeServer side include (SSI)
     
  • Mod_actionsMap cgi scripts to act as internal handlers
      Request Login 
     
  • Mod_log_config Mod_log_agentCustomizable http user agent logging
      Mod_usertrackLoggin users click-trails via cookies
      Mod_log_referSpecialized http referrer
      Experimental 
      Mod_mmap_staticCaching of served pages via mmap
      Development 
      Mod_example Apache API, for developers only.
      Miscellaneous 
      Mod_proxyCaching proxy module includes, http, ftp,https.
     
  • Mod_imap Server_side image map support
      Mod_soDynamic 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