The Apache HTTP Server configuration file is
/etc/httpd/conf/httpd.conf. The
httpd.conf file is well-commented and mostly
self-explanatory. The default configuration works for most
situations; however, it is a good idea to become familiar some of the
more important configuration options.
If configuring the Apache HTTP Server, edit
/etc/httpd/conf/httpd.conf and then either reload,
restart, or stop and start the httpd process as
outlined in Section 10.4 Starting and Stopping httpd.
Before editing httpd.conf, make a copy the original
file. Creating a backup makes it easier to recover from mistakes made
while editing the configuration file.
If a mistake is made and the Web server does not work correctly, first
review recently edited passages in httpd.conf
to verify there are no typos.
Next look in the Web server's error log,
/var/log/httpd/error_log. The error log may not be
easy to interpret, depending on your level of expertise. However, the
last entries in the error log should provide useful information.
The following subsections contain a list of short descriptions for many
of the directives included in httpd.conf. These
descriptions are not exhaustive. For more information, refer to the
Apache documentation online at https://httpd.apache.org/docs-2.0/.
For more information about mod_ssl directives,
refer to the documentation online at https://httpd.apache.org/docs-2.0/mod/mod_ssl.html.
The ServerRoot directive specifies the top-level
directory containing website content. By default,
ServerRoot is set to
"/etc/httpd" for both secure and non-secure
servers.
PidFile names the file where the server records its
process ID (PID). By default the PID is listed in
/var/run/httpd.pid.
Timeout defines, in seconds, the amount of time
that the server waits for receipts and transmissions during
communications. Timeout is set to
300 seconds by default, which is appropriate for
most situations.
KeepAlive sets whether the server allows more
than one request per connection and can be used to prevent any one
client from consuming too much of the server's resources.
By default Keepalive is set to
off. If Keepalive is set to
on and the server becomes very busy, the server can
quickly spawn the maximum number of child processes. In this
situation, the server slows down significantly. If
Keepalive is enabled, it is a good idea to set the
the KeepAliveTimeout low (refer to Section 10.5.7 KeepAliveTimeout for more information about the
KeepAliveTimeout directive) and monitor the
/var/log/httpd/error_log log file on the
server. This log reports when the server is running out of child
processes.
This directive sets the maximum number of requests allowed per
persistent connection. The Apache Project recommends a high setting,
which improves the server's performance.
MaxKeepAliveRequests is set to
100 by default, which should be appropriate for
most situations.
KeepAliveTimeout sets the number of seconds the
server waits after a request has been served before it closes the
connection. Once the server receives a request, the
Timeout directive applies instead. The
KeepAliveTimeout directive is set to 15 seconds by
default.
<IfModule> and
</IfModule> tags create a conditional
container which are only activated if the specified module is
loaded. Directives within the IfModule container
are processed under one of two conditions. The directives are
processed if the module contained within the starting
<IfModule> tag is loaded. Or, if an
exclamation point [!] appears before the module name,
the directives are processed only if the module specified in the
<IfModule> tag is not
loaded.
For more information about Apache HTTP Server modules, refer to Section 10.7 Adding Modules.
As explained in Section 10.2.1.2 Server-Pool Size Regulation, the
responsibility for managing characteristics of the server-pool falls
to a module group called MPMs under Apache HTTP Server 2.0. The characteristics
of the server-pool differ depending upon which MPM is used. For this
reason, an IfModule container is necessary to
define the server-pool for the MPM in use.
By default, Apache HTTP Server 2.0 defines the server-pool for both the
prefork and worker MPMs.
The following section list directives found within the MPM-specific
server-pool containers.
The StartServers directive sets how many server
processes are created upon startup. Since the Web server
dynamically kills and creates server processes based on traffic
load, it is not necessary to change this parameter. The Web server
is set to start 8 server processes at startup for
the prefork MPM and 2 for the
worker MPM.
MaxRequestsPerChild sets the total number of
requests each child server process serves before the child dies. The
main reason for setting MaxRequestsPerChild is to
avoid long-lived process induced memory leaks. The default
MaxRequestsPerChild for the
prefork MPM is 4000 and for
the worker MPM is 0.
MaxClients sets a limit on the total number of
server processes, or simultaneously connected clients, that can run at
one time. The main purpose of this directive is to keep a runaway
Apache HTTP Server from crashing the operating system. For busy servers this
value should be set to a high value. The server's default is set to
150 regardless of the MPM in use. However, it is not recommended that
the value for MaxClients exceeds
256 when using the prefork MPM.
These values are only used with the prefork
MPM. They adjust how the Apache HTTP Server dynamically adapts to the perceived
load by maintaining an appropriate number of spare server processes
based on the number of incoming requests. The server checks the number of servers waiting
for a request and kills some if there are more than
MaxSpareServers or creates some if the number of
servers is less than MinSpareServers.
The default MinSpareServers value is
5; the default MaxSpareServers
value is 20. These default settings should be
appropriate for most situations. Be careful not to increase the
MinSpareServers to a large number as doing so
creates a heavy processing load on the server even when traffic is
light.
These values are only used with the worker
MPM. They adjust how the Apache HTTP Server dynamically adapts to the perceived
load by maintaining an appropriate number of spare server threads
based on the number of incoming requests. The server checks the
number of server threads waiting for a request and kills some if
there are more than MaxSpareThreads or creates
some if the number of servers is less than
MinSpareThreads.
The default MinSpareThreads value is
25; the default
MaxSpareThreads value is
75. These default settings should be appropriate
for most situations. The value for
MaxSpareThreads must be greater than or equal to
the sum of MinSpareThreads and
ThreadsPerChild, else the Apache HTTP Server automatically
corrects it.
This value is only used with the worker MPM. It
sets the number of threads within each child process. The default
value for this directive is 25.
The Listen command identifies the ports on which
the Web server accepts incoming requests. By default, the Apache HTTP Server is
set to listen to port 80 for non-secure Web communications and (in the
/etc/httpd/conf.d/ssl.conf file which defines any
secure servers) to port 443 for secure Web communications.
If the Apache HTTP Server is configured to listen to a port under 1024, only the
root user can start it. For port 1024 and above,
httpd can be started as a regular user.
The Listen directive can also be used to specify
particular IP addresses over which the server accepts connections.
Include allows other configuration files to be
included at runtime.
The path to these configuration files can be absolute or relative to
the ServerRoot.
| Important |
---|
| For the server to use individually packaged modules, such
as mod_ssl, mod_perl, and
php, the following directive must be included in
Section 1: Global Environment of
httpd.conf:
|
LoadModule is used to load Dynamic Shared Object
(DSO) modules. More information on the Apache HTTP Server's DSO support,
including instructions for using the LoadModule
directive, can be found in Section 10.7 Adding Modules. Note,
the load order of the modules is no longer
important with Apache HTTP Server 2.0. Refer to Section 10.2.1.3 Dynamic Shared Object (DSO) Support for more information about Apache HTTP Server 2.0
DSO support.
The ExtendedStatus directive controls whether
Apache generates basic (off) or detailed server
status information (on), when the
server-status handler is called. The
server-status handler is called using
Location tags. More information on calling
server-status is included in Section 10.5.60 Location.
The IfDefine tags surround configuration directives
that are applied if the "test" stated in the
IfDefine tag is true. The directives are ignored
if the test is false.
The test in the IfDefine tags is a parameter name
(for example, HAVE_PERL). If the parameter is
defined, meaning that it is provided as an argument to the server's
start-up command, then the test is true. In this case, when the Web
server is started, the test is true and the directives contained in
the IfDefine tags are applied.
The SuexecUserGroup directive, which originates
from the mod_suexec module, allows the
specification of user and group execution privileges for CGI
programs. Non-CGI requests are still processed with the user and group
specified in the User and Group
directives.
| Note |
---|
| The SuexecUserGroup directive replaces the
Apache HTTP Server 1.3 configuration of using the User and
Group directives inside the configuration of
VirtualHosts sections.
|
The User directive sets the username of the server
process and determines what files the server is allowed to access. Any
files inaccessible to this user are also inaccessible to clients
connecting to the Apache HTTP Server.
By default User is set to
apache.
This directive has been deprecated for the configuration of virtual
hosts.
| Note |
---|
| For security reasons, the Apache HTTP Server does not run as the root
user.
|
Specifies the group name of the Apache HTTP Server processes.
This directive has been deprecated for the configuration of virtual
hosts.
By default, Group is set to
apache.
Sets the ServerAdmin directive to the email address
of the Web server administrator. This email address shows up in
error messages on server-generated Web pages, so users can report a
problem by sending email to the server administrator.
By default, ServerAdmin is set to
root@localhost.
A common way to set up ServerAdmin is to set it to
[email protected]. Once set, alias
webmaster to the person responsible for the Web
server in /etc/aliases and run
/usr/bin/newaliases.
ServerName specifies a hostname and port number
(matching the Listen directive) for the server. The
ServerName does not need to match the machine's
actual hostname. For example, the Web server may be
www.example.com, but the server's
hostname is actually
foo.example.com. The value specified
in ServerName must be a valid Domain Name Service
(DNS) name that can be resolved by the system — do not make
something up.
The following is a sample ServerName directive:
ServerName www.example.com:80 |
When specifying a ServerName, be sure the IP
address and server name pair are included in the
/etc/hosts file.
When set to on, this directive configures the Apache HTTP Server
to reference itself using the value specified in the
ServerName and Port
directives. When UseCanonicalName is set to
off, the server instead uses the value used by
the requesting client when referring to itself.
UseCanonicalName is set to
off by default.
DocumentRoot is the directory which contains
most of the HTML files which are served in response to requests. The
default DocumentRoot, for both the non-secure and
secure Web servers, is the /var/www/html
directory. For example, the server might receive a request for the
following document:
https://example.com/foo.html |
The server looks for the following file in the default directory:
To change the DocumentRoot so that it is not shared
by the secure and the non-secure Web servers, refer to Section 10.8 Virtual Hosts.
<Directory /path/to/directory> and
</Directory> tags create a container used to
enclose a group of configuration directives which apply only to a
specific directory and its subdirectories. Any directive which is
applicable to a directory may be used within
Directory tags.
By default, very restrictive parameters are applied to the root
directory (/), using the Options (refer to Section 10.5.23 Options) and
AllowOverride (refer to Section 10.5.24 AllowOverride) directives. Under this
configuration, any directory on the system which needs more
permissive settings has to be explicitly given those settings.
In the default configuration, another Directory
container is configured for the DocumentRoot which
assigns less rigid parameters to the directory tree so that the
Apache HTTP Server can access the files residing there.
The Directory container can be also be used to
configure additional cgi-bin directories for
server-side applications outside of the directory specified in the
ScriptAlias directive (refer to Section 10.5.41 ScriptAlias for more information).
To accomplish this, the Directory container must
set the ExecCGI option for that directory.
For example, if CGI scripts are located in
/home/my_cgi_directory, add the following
Directory container to the
httpd.conf file:
<Directory /home/my_cgi_directory>
Options +ExecCGI
</Directory> |
Next, the AddHandler directive must be
uncommented to identify files with the .cgi
extension as CGI scripts. Refer to Section 10.5.56 AddHandler
for instructions on setting AddHandler.
For this to work, permissions for CGI scripts, and the entire path to
the scripts, must be set to 0755.
The Options directive controls which server
features are available in a particular directory. For example, under
the restrictive parameters specified for the root directory,
Options is only set to the
FollowSymLinks directive. No features are enabled,
except that the server is allowed to follow symbolic links in the root
directory.
By default, in the DocumentRoot directory,
Options is set to include
Indexes and
FollowSymLinks. Indexes permits
the server to generate a directory listing for a directory if no
DirectoryIndex (for example,
index.html) is
specified. FollowSymLinks allows the server to
follow symbolic links in that directory.
| Note |
---|
| Options statements from the main server
configuration section need to be replicated to each
VirtualHost container individually. Refer to
Section 10.5.65 VirtualHost for more information.
|
The AllowOverride directive sets whether any
Options can be overridden by the declarations in an
.htaccess file. By default, both the root
directory and the DocumentRoot are set to allow no
.htaccess overrides.
The Order directive controls the order in which
allow and deny directives are
evaluated. The server is configured to evaluate the
Allow directives before the Deny
directives for the DocumentRoot directory.
Allow specifies which client can access a given
directory. The client can be all, a domain name,
an IP address, a partial IP address, a network/netmask pair, and so
on. The DocumentRoot directory is configured to
Allow requests from all, meaning
everyone has access.
Deny works similar to Allow,
except it specifies who is denied access. The
DocumentRoot is not configured to
Deny requests from anyone by default.
UserDir is the subdirectory within each user's home
directory where they should place personal HTML files which are served
by the Web server. This directive is set to disable
by default.
The name for the subdirectory is set to
public_html in the default configuration. For
example, the server might receive the following request:
https://example.com/~username/foo.html |
The server would look for the file:
/home/username/public_html/foo.html |
In the above example, /home/username/ is the
user's home directory (note that the default path to users' home
directories may vary).
Make sure that the permissions on the users' home directories are set
correctly. Users' home directories must be set to 0711. The read (r)
and execute (x) bits must be set on the users'
public_html directories (0755 also works).
Files that are served in a users' public_html
directories must be set to at least 0644.
The DirectoryIndex is the default page served by
the server when a user requests an index of a directory by specifying
a forward slash (/) at the end of the directory name.
When a user requests the page
https://example/this_directory/,
they get either the DirectoryIndex page, if it
exists, or a server-generated directory list. The default for
DirectoryIndex is index.html
and the index.html.var type map. The server tries
to find either of these files and returns the first one it finds. If
it does not find one of these files and Options
Indexes is set for that directory, the server generates and
returns a listing, in HTML format, of the subdirectories and files
within the directory, unless the directory listing feature is turned
off.
AccessFileName names the file which the server
should use for access control information in each directory. The
default is .htaccess.
Immediately after the AccessFileName directive, a
set of Files tags apply access control to any file
beginning with a .ht. These directives deny Web
access to any .htaccess files (or other files
which begin with .ht) for security reasons.
By default, the Web server asks proxy servers not to cache any
documents which were negotiated on the basis of content (that is, they
may change over time or because of the input from the requester). If
CacheNegotiatedDocs is set to on,
this function is disabled and proxy servers are allowed to cache such
documents.
TypesConfig names the file which sets the default
list of MIME type mappings (file name extensions to content types).
The default TypesConfig file is
/etc/mime.types. Instead of editing
/etc/mime.types, the recommended way to add MIME
type mappings is to use the AddType directive.
For more information about AddType, refer to
Section 10.5.55 AddType.
DefaultType sets a default content type for the Web
server to use for documents whose MIME types cannot be determined.
The default is text/plain.
HostnameLookups can be set to on,
off, or double. If
HostnameLookups is set to on, the
server automatically resolves the IP address for each
connection. Resolving the IP address means that the server makes one
or more connections to a DNS server, adding processing overhead. If
HostnameLookups is set to double,
the server performs a double-reverse DNS look up adding even more
processing overhead.
To conserve resources on the server,
HostnameLookups is set to off by
default.
If hostnames are required in server log files, consider running one of
the many log analyzer tools that perform the DNS lookups more
efficiently and in bulk when rotating the Web server log files.
ErrorLog specifies the file where server errors are
logged. By default, this directive is set to
/var/log/httpd/error_log.
LogLevel sets how verbose the error messages in the
error logs are. LogLevel can be set (from
least verbose to most verbose) to emerg,
alert, crit,
error, warn,
notice, info, or
debug. The default LogLevel is
warn.
The LogFormat directive configures the format of
the various Web server log files. The actual
LogFormat used depends on the settings given in
the CustomLog directive (refer to Section 10.5.38 CustomLog).
The following are the format options if the
CustomLog directive is set to
combined:
- %h (remote host's IP address or hostname)
Lists the remote IP address of the requesting client. If
HostnameLookups is set to on,
the client hostname is recorded unless it is not available
from DNS.
- %l (rfc931)
Not used. A hyphen [-] appears in the log
file for this field.
- %u (authenticated user)
Lists the username of the user recorded if authentication
was required. Usually, this is not used, so a hyphen
[-] appears in the log file for this field.
- %t (date)
Lists the date and time of the request.
- %r (request string)
Lists the request string exactly as it came from the browser or
client.
- %s (status)
Lists the HTTP status code which was returned to the client host.
- %b (bytes)
Lists the size of the document.
- %\"%{Referer}i\" (referrer)
Lists the URL of the webpage which referred the client host
to Web server.
- %\"%{User-Agent}i\" (user-agent)
Lists the type of Web browser making the request.
CustomLog identifies the log file and the log file
format. By default, the log is recorded to the
/var/log/httpd/access_log file.
The default CustomLog format is the
combined log file format, as illustrated here:
remotehost rfc931 user date "request" status bytes referrer user-agent |
The ServerSignature directive adds a line
containing the Apache HTTP Server server version and the
ServerName to any server-generated documents, such
as error messages sent back to
clients. ServerSignature is set to
on by default.
It can also be set to off or to
EMail. EMail, adds a
mailto:ServerAdmin HTML tag to the signature line
of auto-generated responses.
The Alias setting allows directories outside the
DocumentRoot directory to be accessible. Any URL
ending in the alias automatically resolves to the alias' path. By
default, one alias for an icons/ directory is
already set up. An icons/ directory can be
accessed by the Web server, but the directory is not in the
DocumentRoot.
The ScriptAlias directive defines where CGI scripts
are located. Generally, it is not good practice to leave CGI scripts
within the DocumentRoot, where they can potentially
be viewed as text documents. For this reason, a special directory
outside of the DocumentRoot directory containing
server-side executables and scripts is designated
by the ScriptAlias directive. This directory is
known as a cgi-bin and is set to
/var/www/cgi-bin/ by default.
It is possible to establish directories for storing executables outside
of the cgi-bin/ directory. For instructions on
doing so, refer to Section 10.5.56 AddHandler and Section 10.5.22 Directory.
When a webpage is moved, Redirect can be used to
map the file location to a new URL. The format is as follows:
Redirect /<old-path>/<file-name> https://<current-domain>/<current-path>/<file-name> |
In this example, replace <old-path>
with the old path information for
<file-name> and
<current-domain> and
<current-path> with the current
domain and path information for
<file-name>.
In this example, any requests for
<file-name> at the old location is
automatically redirected to the new location.
For more advanced redirection techniques, use the
mod_rewrite module included with the Apache HTTP Server. For
more information about configuring the mod_rewrite
module, refer to the Apache Software Foundation documentation online
at https://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.
IndexOptions controls the appearance of server
generated directing listings, by adding icons, file descriptions, and
so on. If Options Indexes is set (refer to Section 10.5.23 Options), the Web server generates a directory
listing when the Web server receives an HTTP request for a directory
without an index.
First, the Web server looks in the requested directory for a file
matching the names listed in the DirectoryIndex
directive (usually, index.html). If an
index.html file is not found, Apache HTTP Server creates an
HTML directory listing of the requested directory. The appearance of
this directory listing is controlled, in part, by the
IndexOptions directive.
The default configuration turns on FancyIndexing.
This means that a user can re-sort a directory listing by clicking on
column headers. Another click on the same header switches from
ascending to descending order. FancyIndexing also
shows different icons for different files, based upon file extensions.
The AddDescription option, when used in conjunction
with FancyIndexing, presents a short description
for the file in server generated directory listings.
IndexOptions has a number of other parameters which
can be set to control the appearance of server generated
directories. The IconHeight and
IconWidth parameters require the server to include
HTML HEIGHT and WIDTH tags for
the icons in server generated webpages. The
IconsAreLinks parameter combines the graphical icon
with the HTML link anchor, which contains the URL link target.
This directive names icons which are displayed by files with MIME
encoding in server generated directory listings. For example, by
default, the Web server shows the compressed.gif
icon next to MIME encoded x-compress and x-gzip files in server
generated directory listings.
This directive names icons which are displayed next to files with MIME
types in server generated directory listings. For example, the server
shows the icon text.gif next to files with a
mime-type of text, in server
generated directory listings.
AddIcon specifies which icon to show in server
generated directory listings for files with certain extensions. For
example, the Web server is set to show the icon
binary.gif for files with
.bin or .exe extensions.
DefaultIcon specifies the icon displayed in server
generated directory listings for files which have no other icon
specified. The unknown.gif image file is the
default.
When using FancyIndexing as an
IndexOptions parameter, the
AddDescription directive can be used to display
user-specified descriptions for certain files or file types in a
server generated directory listing. The
AddDescription directive supports listing specific
files, wildcard expressions, or file extensions.
ReadmeName names the file which, if it exists in
the directory, is appended to the end of server generated directory
listings. The Web server first tries to include the file as an HTML
document and then tries to include it as plain text. By default,
ReadmeName is set to
README.html.
HeaderName names the file which, if it exists in
the directory, is prepended to the start of server generated
directory listings. Like ReadmeName, the server
tries to include it as an HTML document if possible or in
plain text if not.
IndexIgnore lists file extensions, partial
file names, wildcard expressions, or full file names. The Web server
does not include any files which match any of those parameters in
server generated directory listings.
AddEncoding names file name extensions which should
specify a particular encoding type. AddEncoding can
also be used to instruct some browsers to uncompress certain files as
they are downloaded.
AddLanguage associates file name extensions with
specific languages. This directive is useful for Apache HTTP Servers which serve
content in multiple languages based on the client Web browser's
language settings.
LanguagePriority sets precedence for different
languages in case the client Web browser has no language preference
set.
Use the AddType directive to define or override a
default MIME type and file extension pairs. The following example
directive tells the Apache HTTP Server to recognize the .tgz
file extension:
AddType application/x-tar .tgz |
AddHandler maps file extensions to specific
handlers. For example, the cgi-script handler can
be matched with the extension .cgi to
automatically treat a file ending with .cgi as a
CGI script. The following is a sample AddHandler
directive for the .cgi extension.
AddHandler cgi-script .cgi |
This directive enables CGIs outside of the
cgi-bin to function in any directory on the
server which has the ExecCGI option within the
directories container. Refer to Section 10.5.22 Directory
for more information about setting the ExecCGI
option for a directory.
In addition to CGI scripts, the AddHandler
directive is used to process server-parsed HTML and image-map files.
Action specifies a MIME content type
and CGI script pair, so that when a file of that media type is
requested, a particular CGI script is executed.
The ErrorDocument directive associates an HTTP
response code with a message or a URL to be sent back to the
client. By default, the Web server outputs a simple and usually
cryptic error message when an error occurs. The
ErrorDocument directive forces the Web server to
instead output a customized message or page.
| Important |
---|
| To be valid, the message must be enclosed in a
pair of double quotes ["].
|
The BrowserMatch directive allows the server to
define environment variables and take appropriate actions based on the
User-Agent HTTP header field — which identifies the client's Web
browser type. By default, the Web server uses
BrowserMatch to deny connections to specific
browsers with known problems and also to disable keepalives and HTTP
header flushes for browsers that are known to have problems with those
actions.
The <Location> and
</Location> tags create a container in which access
control based on URL can be specified.
For instance, to allow people connecting from within the server's
domain to see status reports, use the following directives:
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from <.example.com>
</Location> |
Replace <.example.com> with the
second-level domain name for the Web server.
To provide server configuration reports (including
installed modules and configuration directives) to requests from
inside the domain, use the following directives:
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from <.example.com>
</Location> |
Again, replace <.example.com> with the
second-level domain name for the Web server.
To configure the Apache HTTP Server to function as a proxy server, remove the
hash mark (#) from the beginning of the
<IfModule mod_proxy.c> line, the
ProxyRequests, and each line in the <Proxy>
stanza. Set the ProxyRequests directive to
On, and set which domains are allowed access to the
server in the Allow from directive of the
<Proxy> stanza.
<Proxy *> and
</Proxy> tags create a container which
encloses a group of configuration directives meant to apply only to
the proxy server. Many directives which are allowed within a
<Directory> container may also be used within
<Proxy> container.
A number of commented cache directives are supplied by the default
Apache HTTP Server configuration file. In most cases, uncommenting these lines by
removing the hash mark (#) from the beginning of the
line is sufficient. The following, however, is a list of some of the
more important cache-related directives.
CacheEnable — Specifies whether the
cache is a disk, memory, or file descriptor cache. By default
CacheEnable configures a disk cache for URLs at
or below /.
CacheRoot — Specifies the name of
the directory containing cached files. The default
CacheRoot is the
/var/httpd/proxy/ directory.
CacheSize — Specifies how much space
the cache can use in kilobytes. The default
CacheSize is 5 KB.
The following is a list of some of the other common cache-related
directives.
CacheMaxExpire — Specifies how long
HTML documents are retained (without a reload from the originating
Web server) in the cache. The default is 24
hours (86400 seconds).
CacheLastModifiedFactor — Specifies
the creation of an expiry (expiration) date for a document which
did not come from its originating server with its own expiry
set. The default CacheLastModifiedFactor is set
to 0.1, meaning that the expiry date for such
documents equals one-tenth of the amount of time since the
document was last modified.
CacheDefaultExpire — Specifies the
expiry time in hours for a document that was received using a
protocol that does not support expiry times. The default is set to
1 hour (3600 seconds).
NoProxy — Specifies a space-separated
list of subnets, IP addresses, domains, or hosts whose content is
not cached. This setting is most useful for Intranet sites.
The NameVirtualHost directive associates an IP
address and port number, if necessary, for any name-based virtual
hosts. Name-based virtual hosting allows one Apache HTTP Server to serve
different domains without using multiple IP addresses.
| Note |
---|
| Name-based virtual hosts only work with
non-secure HTTP connections. If using virtual hosts with a secure
server, use IP address-based virtual hosts instead.
|
To enable name-based virtual hosting, uncomment the
NameVirtualHost configuration directive and add the
correct IP address. Then add additional VirtualHost
containers for each virtual host as is necessary for your
configuration.
<VirtualHost> and
</VirtualHost> tags create a container
outlining the characteristics of a virtual host. The
VirtualHost container accepts most configuration
directives.
A commented VirtualHost container is provided in
httpd.conf, which illustrates the minimum set of
configuration directives necessary for each virtual host. Refer to
Section 10.8 Virtual Hosts for more information about
virtual hosts.
| Note |
---|
| The default SSL virtual host container now
resides in the file
/etc/httpd/conf.d/ssl.conf.
|
The directives in /etc/httpd/conf.d/ssl.conf file
can be configured to enable secure Web communications using SSL and
TLS.
SetEnvIf sets environment variables based on the
headers of incoming connections. It is not
solely an SSL directive, though it is present in the supplied
/etc/httpd/conf.d/ssl.conf file. It's purpose
in this context is to disable HTTP keepalive and to allow SSL to
close the connection without a closing notification from the client
browser. This setting is necessary for certain browsers that do not
reliably shut down the SSL connection.
For more information on other directives within the SSL
configuration file, refer to the following URLs:
For information about setting up an Apache HTTP Secure Server, Refer
to the chapter titled Apache HTTP Secure Server
Configuration in the Red Hat Enterprise Linux System Administration Guide.
| Note |
---|
| In most cases, SSL directives are configured appropriately during
the installation of Red Hat Enterprise Linux. Be careful when altering Apache HTTP
Secure Server directives, misconfiguration can lead to security
vulnerabilities.
|