From: Jim Jagielski When httpd starts, it binds to some port and address on
the local machine and waits for incoming requests. By default,
it listens to all addresses on the machine. However, it may need to
- be told to listen on specific ports, or only on selected
- addresses, or a combination of both. This is often combined with the
- Virtual Host feature, which determines how
- The Overlapping Overlapping A growing number of platforms implement IPv6, and
One complicating factor for httpd administrators is whether or
- not an IPv6 socket can handle both IPv4 connections and IPv6
- connections. Handling IPv4 connections with an IPv6 socket uses
- IPv4-mapped IPv6 addresses, which are allowed by default on most
- platforms, but are disallowed by default on FreeBSD, NetBSD, and
+ not an IPv6 socket can handle both IPv4 connections and IPv6
+ connections. Handling IPv4 connections with an IPv6 socket uses
+ IPv4-mapped IPv6 addresses, which are allowed by default on most
+ platforms, but are disallowed by default on FreeBSD, NetBSD, and
OpenBSD, in order to match the system-wide policy on those
- platforms. On systems where it is disallowed by default, a
+ platforms. On systems where it is disallowed by default, a
special On the other hand, on some platforms, such as Linux and Tru64, the
- only way to handle both IPv6 and IPv4 is to use
- mapped addresses. If you want On the other hand, on some platforms, such as Linux and Tru64, the
+ only way to handle both IPv6 and IPv4 is to use
+ mapped addresses. If you want If you want httpd to handle IPv4 connections only, regardless of
- what your platform and APR will support, specify an IPv4 address on all
+ If you want httpd to handle IPv4 connections only, regardless of
+ what your platform and APR will support, specify an IPv4 address on all
If your platform supports it and you want httpd to handle IPv4 and
- IPv6 connections on separate sockets (i.e., to disable IPv4-mapped
+ If your platform supports it and you want httpd to handle IPv4 and
+ IPv6 connections on separate sockets (i.e., to disable IPv4-mapped
addresses), specify the The optional second protocol argument of
You only need to set the protocol if you are running on non-standard
+ You only need to set the protocol if you are running on non-standard
ports. For example, running an The This document supplements the As To get the most from this document, you should be familiar with
- the basics of HTTP, and have read the Users' Guides to
- Mapping URLs to the Filesystem and
+ To get the most from this document, you should be familiar with
+ the basics of HTTP, and have read the Users' Guides to
+ Mapping URLs to the Filesystem and
Content negotiation. There are two main stages in This means that any other stages that might ordinarily happen
@@ -110,7 +110,7 @@
If the URL is not found within the cache, If the URL is found within the cache, but also found to have expired,
@@ -125,8 +125,8 @@
When caching locally generated content, ensuring that
- When caching locally generated content, ensuring that
+ Because caching is performed within the URL to filename translation
+ Because caching is performed within the URL to filename translation
phase, cached documents will only be served in response to URL requests.
Ordinarily this is of little consequence, but there is one circumstance
- in which it matters: If you are using Server
+ in which it matters: If you are using Server
Side Includes; The default expiry period for cached entities is one hour, however
- this can be easily over-ridden by using the If a response does not include an For local content, When content expires from the cache and is re-requested from the
+ When content expires from the cache and is re-requested from the
backend or content provider, rather than pass on the original request,
httpd will use a conditional request instead. HTTP offers a number of headers which allow a client, or cache
to discern between different versions of the same content. For
example if a resource was served with an "Etag:" header, it is
- possible to make a conditional request with an "If-None-Match:"
+ possible to make a conditional request with an "If-None-Match:"
header. If a resource was served with a "Last-Modified:" header
- it is possible to make a conditional request with an
+ it is possible to make a conditional request with an
"If-Modified-Since:" header, and so on. When such a conditional request is made, the response differs
- depending on whether the content matches the conditions. If a request is
- made with an "If-Modified-Since:" header, and the content has not been
- modified since the time indicated in the request then a terse "304 Not
+ depending on whether the content matches the conditions. If a request is
+ made with an "If-Modified-Since:" header, and the content has not been
+ modified since the time indicated in the request then a terse "304 Not
Modified" response is issued. If the content has changed, then it is served as if the request were
not conditional to begin with. The benefits of conditional requests in relation to caching are
- twofold. Firstly, when making such a request to the backend, if the
+ The benefits of conditional requests in relation to caching are
+ twofold. Firstly, when making such a request to the backend, if the
content from the backend matches the content in the store, this can be
determined easily and without the overhead of transferring the entire
resource. As mentioned already, the two styles of caching in httpd work
- differently, As mentioned already, the two styles of caching in httpd work
+ differently, In short, any content which is highly time-sensitive, or which varies
depending on the particulars of the request that are not covered by
HTTP negotiation, should not be cached. If a response with a "Vary" header is received by
+ If a response with a "Vary" header is received by
If for example, a response is received with a vary header such as; As requests to end-users can be served from the cache, the cache
itself can become a target for those wishing to deface or interfere with
content. It is important to bear in mind that the cache must at all
- times be writable by the user which httpd is running as. This is in
+ times be writable by the user which httpd is running as. This is in
stark contrast to the usually recommended situation of maintaining
all content unwritable by the Apache user. If the Apache user is compromised, for example through a flaw in
a CGI process, it is possible that the cache may be targeted. When
- using This presents a somewhat elevated risk in comparison to the other
- types of attack it is possible to make as the Apache user. If you are
- using When running httpd as a caching proxy server, there is also the
- potential for so-called cache poisoning. Cache Poisoning is a broad
- term for attacks in which an attacker causes the proxy server to
+ potential for so-called cache poisoning. Cache Poisoning is a broad
+ term for attacks in which an attacker causes the proxy server to
retrieve incorrect (and usually undesirable) content from the backend.
The act of opening a file can itself be a source of delay, particularly
+ The act of opening a file can itself be a source of delay, particularly
on network filesystems. By maintaining a cache of open file descriptors
for commonly served files, httpd can avoid this delay. Currently
httpd
- provides one implementation of File-Handle Caching. The most basic form of caching present in httpd is the file-handle
- caching provided by The
- The
+ If you intend to cache a large number of files in this manner, you
- must ensure that your operating system's limit for the number of open
+ If you intend to cache a large number of files in this manner, you
+ must ensure that your operating system's limit for the number of open
files is set appropriately. Although using Serving directly from system memory is universally the fastest method
of serving content. Reading files from a disk controller or, even worse,
from a remote network is orders of magnitude slower. Disk controllers
@@ -470,12 +470,12 @@ Vary: negotiate,accept-language,accept-charset
System memory isn't cheap though, byte for byte it's by far the most
expensive type of storage and it's important to ensure that it is used
- efficiently. By caching files in memory you decrease the amount of
+ efficiently. By caching files in memory you decrease the amount of
memory available on the system. As we'll see, in the case of operating
system caching, this is not so much of an issue, but when using
httpd's own in-memory caching it is important to make sure that you
do not allocate too much memory to a cache. Otherwise the system
- will be forced to swap out memory, which will likely degrade
+ will be forced to swap out memory, which will likely degrade
performance.httpd responds to different IP addresses, hostnames and
+ be told to listen on specific ports, or only on selected
+ addresses, or a combination of both. This is often combined with the
+ Virtual Host feature, which determines how
+ httpd responds to different IP addresses, hostnames and
ports.httpd to handle IPv4 and IPv6 connections
- with a minimum of sockets, which requires using IPv4-mapped IPv6
+ httpd to handle IPv4 and IPv6 connections
+ with a minimum of sockets, which requires using IPv4-mapped IPv6
addresses, specify the --enable-v4-mapped --enable-v4-mapped is the default on all platforms except
- FreeBSD, NetBSD, and OpenBSD, so this is probably how your httpd was
+ --enable-v4-mapped is the default on all platforms except
+ FreeBSD, NetBSD, and OpenBSD, so this is probably how your httpd was
built.--disable-v4-mapped --disable-v4-mapped is the
default on FreeBSD, NetBSD, and OpenBSD.https is the default for
- port 443 and http the default for all other ports. The
+ is not required for most
+ configurations. If not specified, https is the default for
+ port 443 and http the default for all other ports. The
protocol is used to determine which module should handle a request, and
- to apply protocol specific optimizations with the
+ to apply protocol specific optimizations with the
https site on port 8443:On can dramatically improve the ratio of cache hits. This
is because the hostname of the virtual-host serving the content forms
a part of the cache key. With the setting set to On
@@ -134,10 +134,10 @@
differently cached entities, and instead content will be cached as
per the canonical hostname.virtual include
types.Expires header but does
include a Last-Modified header,
-
By ensuring there is "spare" memory on your system, you can ensure - that more and more file-contents will be stored in this cache. This - can be a very efficient means of in-memory caching, and involves no +
By ensuring there is "spare" memory on your system, you can ensure + that more and more file-contents will be stored in this cache. This + can be a very efficient means of in-memory caching, and involves no extra configuration of httpd at all.
-Additionally, because the operating system knows when files are - deleted or modified, it can automatically remove file contents from the - cache when necessary. This is a big advantage over httpd's in-memory +
Additionally, because the operating system knows when files are + deleted or modified, it can automatically remove file contents from the + cache when necessary. This is a big advantage over httpd's in-memory caching which has no way of knowing when a file has changed.
Despite the performance and advantages of automatic operating system - caching there are some circumstances in which in-memory caching may be + caching there are some circumstances in which in-memory caching may be better performed by httpd.
The
The
Typically the module will be configured as so;
-Importantly, as the cached files are locally stored, operating system - in-memory caching will typically be applied to their access also. So - although the files are stored on disk, if they are frequently accessed + in-memory caching will typically be applied to their access also. So + although the files are stored on disk, if they are frequently accessed it is likely the operating system will ensure that they are actually served from memory.
@@ -590,68 +590,68 @@ CacheDirLength 1 as a prefix for the naming of the files specific to that URL within the cache, however first it is split up into directories as per the/var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w.
The overall aim of this technique is to reduce the number of
subdirectories or files that may be in a particular directory,
as most file-systems slow down as this number increases. With
- setting of "1" for
+ setting of "1" for
Setting +
Setting
Each URL uses at least two files in the cache-store. Typically - there is a ".header" file, which includes meta-information about + there is a ".header" file, which includes meta-information about the URL, such as when it is due to expire and a ".data" file which is a verbatim copy of the content to be served.
In the case of a content negotiated via the "Vary" header, a - ".vary" directory will be created for the URL in question. This + ".vary" directory will be created for the URL in question. This directory will have multiple ".data" files corresponding to the differently negotiated content.
Although
Instead, provided with httpd is the Instead, provided with httpd is the htcacheclean tool which, as the name - suggests, allows you to clean the cache periodically. Determining - how frequently to run htcacheclean and what target size to + suggests, allows you to clean the cache periodically. Determining + how frequently to run htcacheclean and what target size to use for the cache is somewhat complex and trial and error may be needed to select optimal values.
-htcacheclean has two modes of - operation. It can be run as persistent daemon, or periodically from - cron. htcacheclean can take up to an hour - or more to process very large (tens of gigabytes) caches and if you are - running it from cron it is recommended that you determine how long a typical +
htcacheclean has two modes of + operation. It can be run as persistent daemon, or periodically from + cron. htcacheclean can take up to an hour + or more to process very large (tens of gigabytes) caches and if you are + running it from cron it is recommended that you determine how long a typical run takes, to avoid running more than one instance at a time.
@@ -661,8 +661,8 @@ CacheDirLength 1 cache growth / clean sequence.
Because
httpd supports 'server driven' content negotiation, as
defined in the HTTP/1.1 specification. It fully supports the
Accept, Accept-Language,
- Accept-Charset andAccept-Encoding
+ Accept-Charset andAccept-Encoding
request headers. httpd also supports 'transparent'
content negotiation, which is an experimental negotiation
protocol defined in RFC 2295 and RFC 2296. It does not offer
@@ -129,7 +129,7 @@
.var. In the examples shown below, the resource is
named foo, so the type map file is named
foo.var.
This file should have an entry for each available variant; these entries consist of contiguous HTTP-format header lines. Entries for different variants are separated by blank @@ -337,7 +337,7 @@ not selected at each test are eliminated. After each test, if only one variant remains, select it as the best match and proceed to step 3. If more than one variant remains, - move on to the next test. + move on to the next test.
Accept
@@ -519,7 +519,7 @@
httpd extends the transparent content negotiation protocol (RFC
2295) as follows. A new {encoding ..} element is used in
diff --git a/docs/manual/custom-error.xml b/docs/manual/custom-error.xml
index d687d7e524a..c62ab13247f 100644
--- a/docs/manual/custom-error.xml
+++ b/docs/manual/custom-error.xml
@@ -29,7 +29,7 @@
Although the Apache HTTP Server provides generic error responses in the event of 4xx or 5xx HTTP status codes, these responses are rather stark, uninformative, and can be intimidating to site users. - You may wish to provide custom error responses which are either + You may wish to provide custom error responses which are either friendlier, or in some language other than English, or perhaps which are styled more in line with your site layout.
@@ -52,7 +52,7 @@ module="core">ErrorDocument directive, which may be used in global, virtualhost, or directory context. It may be used in .htaccess files - ifNote that if the response contains Location:
header (in order to issue a client-side redirect), the script
- must emit an appropriate Status: header
- (such as 302 Found). Otherwise the
+ must emit an appropriate Status: header
+ (such as 302 Found). Otherwise the
Location: header may have no effect.
We begin with an overview of the basic concepts behind the API, and how they are manifested in the code.
diff --git a/docs/manual/developer/debugging.xml b/docs/manual/developer/debugging.xml index a6e40ca7d4c..9a579f73015 100644 --- a/docs/manual/developer/debugging.xml +++ b/docs/manual/developer/debugging.xml @@ -31,7 +31,7 @@ describes the modes available and gives instructions on activating them. - +The deffunc is not always necessary. DoxyGen does not
have a full parser in it, so any prototype that use a macro in the
return type declaration is too complex for scandoc. Those functions
diff --git a/docs/manual/developer/filters.xml b/docs/manual/developer/filters.xml
index ff953a0a76f..5e44ababc53 100644
--- a/docs/manual/developer/filters.xml
+++ b/docs/manual/developer/filters.xml
@@ -140,7 +140,7 @@ Default_handler --> includes_filter --> byterange --> ...
might not be SSI data. So, the subrequest adds the following:
+
Default_handler --> includes_filter -/-> byterange --> ...
/
Default_handler --> sub_request_core
diff --git a/docs/manual/developer/index.xml b/docs/manual/developer/index.xml
index 365d844b6ea..296792dcef8 100644
--- a/docs/manual/developer/index.xml
+++ b/docs/manual/developer/index.xml
@@ -67,7 +67,7 @@
>Handling configuration directivesFor the purpose of this document, the API is split according
to the public header files. These headers are themselves the
- reference documentation, and can be used to generate a browsable
+ reference documentation, and can be used to generate a browsable
HTML reference with make docs.
Code which calls ap_log_* without passing
+
Code which calls ap_log_* without passing
APLOG_MARK will necessarily differ between 2.4 and earlier
releases, as 2.4 requires a new third argument,
APLOG_MODULE_INDEX.
A server_rec pointer must be passed to
+
A server_rec pointer must be passed to
ap_log_error() when called after startup. This
was always appropriate, but there are even more limitations with
a NULL server_rec in 2.4 than in
@@ -341,7 +341,7 @@
NULL only when it is valid to pass NULL
to ap_log_error(). ap_server_conf
should be used only when a more appropriate server_rec
- is not available.
Consider the following changes to take advantage of the new
APLOG_TRACE1..8 log levels:
ap_get_server_version()ap_get_server_description().
When generating output, where the amount of information
should be configurable by ServerTokens, use
diff --git a/docs/manual/developer/output-filters.xml b/docs/manual/developer/output-filters.xml
index 5d813ef299d..93360dce32e 100644
--- a/docs/manual/developer/output-filters.xml
+++ b/docs/manual/developer/output-filters.xml
@@ -24,7 +24,7 @@
There are a number of common pitfalls encountered when writing
output filters; this page aims to document best practice for
@@ -93,9 +93,9 @@
For any given request, an output filter might be invoked only
- once and be given a single brigade representing the entire response.
+ once and be given a single brigade representing the entire response.
It is also possible that the number of times a filter is invoked
for a single response is proportional to the size of the content
being filtered, with the filter being passed a brigade containing
@@ -185,10 +185,10 @@
calling this function (since it comes from a pool), but the
associated pool cleanup is unregistered. Using
In general, filters should use A filter which needs to maintain state over multiple
invocations per response can use the apr_brigade_destroy can in fact cause memory leaks;
- if a "destroyed" brigade contains buckets when its
+ if a "destroyed" brigade contains buckets when its
containing pool is destroyed, those buckets will not be
immediately destroyed.apr_brigade_cleanup
in preference to apr_brigade_destroy.
->ctx field of
its ap_filter_t structure. It is typical to store a
temporary brigade in such a structure, to avoid having to allocate
a new brigade per invocation as described in the Brigade structure section.
from every data bucket using a non-blocking read; if that fails
with APR_EAGAIN, then send a FLUSH
bucket down the filter chain, and retry using a blocking read.
This mode of operation ensures that any filters further down the filter chain will flush any buffered buckets if a slow content source is being used.
@@ -470,7 +470,7 @@ while ((e = APR_BRIGADE_FIRST(bb)) != APR_BRIGADE_SENTINEL(bb)) {apr_brigade_destroy to "destroy"
brigades.In the case where you have a global variable that needs to be global and
accessed by all threads, be very careful when you update it. If, for
example, it is an incrementing counter, you need to atomically increment
@@ -82,7 +82,7 @@
to their *_r equivalents and sometimes changes
the common getc/putc macros into safer function
calls. Check your libc documentation for specifics. Instead of, or in
- addition to _REENTRANT the symbols that may affect this are
+ addition to _REENTRANT the symbols that may affect this are
_POSIX_C_SOURCE, _THREAD_SAFE,
_SVID_SOURCE, and _BSD_SOURCE.
http://www.example2.dom/whatever) will all be served by
the example1.dom virtual host. To better understand why
- this happens requires a more in-depth discussion of how httpd
+ this happens requires a more in-depth discussion of how httpd
matches up incoming requests with the virtual host that will
serve it. A rough document describing this is available.
@@ -152,7 +152,7 @@
or maybe /etc/nsswitch.conf.
If your server doesn't have to perform DNS for any other
- reason then you might be able to get away with running httpd
+ reason then you might be able to get away with running httpd
with the HOSTRESORDER environment variable set to
"local". This all depends on what OS and resolver libraries you
are using. It also affects CGIs unless you use
diff --git a/docs/manual/dso.xml b/docs/manual/dso.xml
index ef73294ef83..98bb1d5345c 100644
--- a/docs/manual/dso.xml
+++ b/docs/manual/dso.xml
@@ -117,7 +117,7 @@ $ make install
Build and install a third-party Apache httpd module, say
mod_foo.c, into its own DSO
mod_foo.so outside of the Apache httpd
- source tree using
diff --git a/docs/manual/env.xml b/docs/manual/env.xml
index 63d94008fce..369eaf8993a 100644
--- a/docs/manual/env.xml
+++ b/docs/manual/env.xml
@@ -140,7 +140,7 @@
not be a number. Characters which do not match this
restriction will be replaced by an underscore when passed to
CGI scripts and SSI pages.
When set,
Starting with version 2.4, Apache is more strict about how HTTP
headers are converted to environment variables in
If you have to support a client which sends broken headers and
which can't be fixed, a simple workaround involving
There are two ways to use filtering: Simple and Dynamic. diff --git a/docs/manual/glossary.xml b/docs/manual/glossary.xml index 91825abe7a7..3bc7dae09eb 100644 --- a/docs/manual/glossary.xml +++ b/docs/manual/glossary.xml @@ -39,13 +39,13 @@ href="howto/auth.html">Authentication, Authorization, and Access Control - +
www is a hostname, example.com is a domain name,
and www.example.com is a fully-qualified domain name.
- GET, POST,
and PUT.
- Handlers can either be built into the server or included in
- a module, or they can be added with the
Access control can be done by several different modules. The most
important of these are
The
In the first form, address is a fully qualified - domain name (or a partial domain name); you may provide multiple +
In the first form, address is a fully qualified + domain name (or a partial domain name); you may provide multiple addresses or domain names, if desired.
In the second form, ip.address is an IP address, a
diff --git a/docs/manual/howto/cgi.xml b/docs/manual/howto/cgi.xml
index 23cd9bac4c6..c917bdfc637 100644
--- a/docs/manual/howto/cgi.xml
+++ b/docs/manual/howto/cgi.xml
@@ -71,7 +71,7 @@
The
+ The
For example, if the URL
http://www.example.com/cgi-bin/test.pl
- is requested, Apache will attempt to execute the file
+ is requested, Apache will attempt to execute the file
/usr/local/apache2/cgi-bin/test.pl
and return the output. Of course, the file will have to
exist, and be executable, and return output in a particular
@@ -122,7 +122,7 @@
use CGI programs. However, if the proper security precautions are
taken, there is no reason why CGI programs cannot be run from
arbitrary directories. For example, you may wish to let users
- have web content in their home directories with the
+ have web content in their home directories with the
cgi-bin directory, they will need to be able to
@@ -134,7 +134,7 @@
module="mod_mime">AddHandler or ExecCGI must be specified in the
The following is an example CGI program that prints one
line to your browser. Type in the following, save it to a
- file called first.pl, and put it in your
+ file called first.pl, and put it in your
cgi-bin directory.
or wherever you put your file, you will see the one line +
or wherever you put your file, you will see the one line
Hello, World. appear in your browser window.
It's not very exciting, but once you get that working, you'll
have a good chance of getting just about anything working.
When you miss HTTP headers from the environment, make - sure they are formatted according to + sure they are formatted according to RFC 2616, - section 4.2: Header names must start with a letter, + section 4.2: Header names must start with a letter, followed only by letters, numbers or hyphen. Any header violating this rule will be dropped silently.
@@ -462,7 +462,7 @@ (where the computer searches for the actual file implementing a command when you type it), your username, your terminal type, and so on. For a full list of your normal, - every day environment variables, type + every day environment variables, typeenv at a command prompt.
During the CGI transaction, the server and the browser @@ -473,19 +473,19 @@
These variables are available to the CGI programmer, and are half of the story of the client-server communication. The - complete list of required variables is at + complete list of required variables is at Common Gateway Interface RFC.
This simple Perl CGI program will display all of the
environment variables that are being passed around. Two
- similar programs are included in the
+ similar programs are included in the
cgi-bin
directory of the Apache distribution. Note that some
variables are required, while others are optional, so you may
see some variables listed that were not in the official list.
- In addition, Apache provides many different ways for you to
+ In addition, Apache provides many different ways for you to
add your own environment variables
to the basic ones provided by default.
Other communication between the server and the client
happens over standard input (STDIN) and standard
- output (STDOUT). In normal everyday context,
- STDIN means the keyboard, or a file that a
+ output (STDOUT). In normal everyday context,
+ STDIN means the keyboard, or a file that a
program is given to act on, and STDOUT
- usually means the console or screen.
When you POST a web form to a CGI program,
the data in that form is bundled up into a special format
@@ -530,10 +530,10 @@
You'll sometimes also see this type of string appended to
a URL. When that is done, the server puts that string
- into the environment variable called
+ into the environment variable called
QUERY_STRING. That's called a GET
request. Your HTML form specifies whether a GET
- or a POST is used to deliver the data, by setting the
+ or a POST is used to deliver the data, by setting the
METHOD attribute in the FORM tag.
Your program is then responsible for splitting that string @@ -557,7 +557,7 @@ set of functionality, which is all you need in most programs.
If you're writing CGI programs in C, there are a variety of
- options. One of these is the CGIC library, from
+ options. One of these is the CGIC library, from
http://www.boutell.com/cgic/.
The current CGI specification is available in the +
The current CGI specification is available in the Common Gateway Interface RFC.
diff --git a/docs/manual/howto/public_html.xml b/docs/manual/howto/public_html.xml index 224c9911898..d2da191548e 100644 --- a/docs/manual/howto/public_html.xml +++ b/docs/manual/howto/public_html.xml @@ -27,7 +27,7 @@On systems with multiple users, each user can be permitted to have a
- web site in their home directory using the http://example.com/~username/ will get content
out of the home directory of the user "username", out of
@@ -109,30 +109,30 @@
UserDir public_html /var/html
-
For the URL http://example.com/~rbowen/file.html,
- Apache will search for ~rbowen. If it isn't found,
+
For the URL http://example.com/~rbowen/file.html,
+ Apache will search for ~rbowen. If it isn't found,
Apache will search for rbowen in /var/html. If
- found, the above URL will then be translated to the file path
+ found, the above URL will then be translated to the file path
/var/html/rbowen/file.html
The
The above example will redirect a request for
http://example.com/~bob/abc.html to
http://example.org/users/bob/abc.html.
Using the syntax shown in the UserDir documentation, you can restrict diff --git a/docs/manual/howto/ssi.xml b/docs/manual/howto/ssi.xml index 577c5155a41..c9ef9234625 100644 --- a/docs/manual/howto/ssi.xml +++ b/docs/manual/howto/ssi.xml @@ -109,7 +109,7 @@ existing HTML documents.
order to give it a.shtml extension, so that those
directives would be executed.
- The other method is to use the
.html files for SSI, so that you don't have to
mess with .shtml file names. These folks have
- perhaps not heard about LAST_MODIFIED, for example) to
give values to your variables. You will specify that something is
a variable, rather than a literal string, by using the dollar sign
- ($) before the name of the variable.
+ ($) before the name of the variable.
--with-perl option (see below) to make sure the
+ 5.003 or newer are sufficient). If you have multiple Perl
+ interpreters (for example, a systemwide install of Perl 4, and
+ your own install of Perl 5), you are advised to use the
+ --with-perl option (see below) to make sure the
correct one is used by Please be patient here, since a base configuration takes several minutes to compile and the time will vary widely depending on your hardware and the number of modules that you - have enabled.
+ have enabled.Have a look at the Apache manual under +
Have a look at the Apache manual under
In order to effectively manage a web server, it is necessary
to get feedback about the activity and performance of the
- server as well as any problems that may be occurring. The Apache HTTP Server
+ server as well as any problems that may be occurring. The Apache HTTP Server
provides very comprehensive and flexible logging
capabilities. This document describes how to configure its
logging capabilities, and how to understand what the logs
@@ -114,11 +114,11 @@
The format of the error log is defined by the PREFIX/docs/manual/ or consult http://httpd.apache.org/docs/&httpd.docs;/ for the most recent
diff --git a/docs/manual/logs.xml b/docs/manual/logs.xml
index 6adad74c3e9..be260b311cf 100644
--- a/docs/manual/logs.xml
+++ b/docs/manual/logs.xml
@@ -27,7 +27,7 @@
Multiple access logs can be created simply by specifying
- multiple If If [day/month/year:hour:minute:second zone]
@@ -425,7 +425,7 @@
env= clause of the
Notes about the password encryption formats generated and understood by Apache.
There are four formats that Apache recognizes for basic-authentication passwords. Note that not all formats work on every platform:
- +crypt(3) function
with a randomly-generated 32-bit salt (only 12 bits used) and the first 8
characters of the password.OpenSSL knows the Apache-specific MD5 algorithm.
- +The salt for a CRYPT password is the first two characters (converted to
a binary value). To validate myPassword against
rqXexS6ZhobKA
Note that using myPasswo instead of
myPassword will produce the same result because only the
first 8 characters of CRYPT passwords are considered.
The salt for an MD5 password is between $apr1$ and the
following $ (as a Base64-encoded binary value - max 8 chars).
To validate myPassword against
$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/
The SHA1 variant is probably the most useful format for DBD authentication. Since the SHA1 and Base64 functions are commonly available, other software can populate a database with encrypted passwords that are usable by Apache basic authentication.
- +To create Apache SHA1-variant basic-authentication passwords in various languages:
- +Apache recognizes one format for
digest-authentication passwords - the MD5 hash of the string
@@ -166,20 +166,20 @@
digits. realm is the Authorization Realm argument to the
Since the MD5 function is commonly available, other software can populate a database with encrypted passwords that are usable by Apache digest authentication.
- +To create Apache digest-authentication passwords in various languages:
- +The mpm-accept mutex at run-time. Special considerations
- for different mutex implementations are documented with that
+ for different mutex implementations are documented with that
directive.
Another solution that has been considered but never
diff --git a/docs/manual/misc/relevant_standards.xml b/docs/manual/misc/relevant_standards.xml
index 17903e06732..21dfae17302 100644
--- a/docs/manual/misc/relevant_standards.xml
+++ b/docs/manual/misc/relevant_standards.xml
@@ -24,7 +24,7 @@
This page documents all the relevant standards that the Apache HTTP Server follows, along with brief descriptions.
@@ -53,7 +53,7 @@Regardless of what modules are compiled and used, Apache as a diff --git a/docs/manual/mod/event.xml b/docs/manual/mod/event.xml index e4f191c1a21..fc6154bd28b 100644 --- a/docs/manual/mod/event.xml +++ b/docs/manual/mod/event.xml @@ -88,7 +88,7 @@ of consuming threads only for connections with active processing moot.
libkse (see man libmap.conf).The directives provided by
Allow from
env=env-variable is specified, then the request is
allowed access if the environment variable env-variable
- exists. When Allow from env=!env-variable is
- specified, then the request is allowed access if the environment
+ exists. When Allow from env=!env-variable is
+ specified, then the request is allowed access if the environment
variable env-variable doesn't exist.
The server provides the ability to set environment
variables in a flexible way based on characteristics of the client
@@ -440,7 +440,7 @@ laterIn this example, requests for files with a file extension of
- .xyz are handled by the specified cgi script
+ .xyz are handled by the specified cgi script
/cgi-bin/program.cgi.
The optional virtual modifier turns off the check
@@ -127,7 +127,7 @@ method.
module="mod_alias">ScriptAlias or PATH_INFO and PATH_TRANSLATED environment
+ PATH_INFO and PATH_TRANSLATED environment
variables.
Note that the
Note that the GET will only be called if there are query arguments present
(e.g., foo.html?hi). Otherwise, the request will
proceed normally.
In other words, just changing +
In other words, just changing
The old URL-path is a case-sensitive (%-decoded) path beginning with a slash. A relative path is not allowed.
- -The new URL may be either an absolute URL beginning + +
The new URL may be either an absolute URL beginning with a scheme and hostname, or a URL-path beginning with a slash. In this latter case the scheme and hostname of the current server will be added.
@@ -284,7 +284,7 @@ a different URLhttp://foo2.example.com/service/foo.txt
instead. This includes requests with GET parameters, such as
http://example.com/service/foo.pl?q=23&a=42,
- it will be redirected to
+ it will be redirected to
http://foo2.example.com/service/foo.pl?q=23&a=42.
Note that POSTs will be discarded.In this scenario all files requested in /cgi-bin/ will be
- handled by the file you have configured, this allows you to use your own custom
- handler. You may want to use this as a wrapper for CGI so that you can add
+ handled by the file you have configured, this allows you to use your own custom
+ handler. You may want to use this as a wrapper for CGI so that you can add
content, or some other bespoke action.
The
The file provider is implemented
by the
Providers are queried in order until a provider finds a match - for the requested username, at which point this sole provider will + for the requested username, at which point this sole provider will attempt to check the password. A failure to verify the password does not result in control being passed on to subsequent providers.
diff --git a/docs/manual/mod/mod_auth_digest.xml b/docs/manual/mod/mod_auth_digest.xml index 85b233f2553..8e06f6b9d7b 100644 --- a/docs/manual/mod/mod_auth_digest.xml +++ b/docs/manual/mod/mod_auth_digest.xml @@ -43,12 +43,12 @@To use MD5 Digest authentication, simply +
To use MD5 Digest authentication, simply
change the normal AuthType Basic and
AuthType Digest and
Digest authentication is more secure than Basic authentication,
but only works with supporting browsers. As of September 2004, major
browsers that support digest authentication include AuthConfig
The The See See Once the user has been successfully authenticated, the user's login
details will be stored in a session provided by To protect a particular URL with The directive The directives The directives The login form can be hosted as a standalone page, or can be provided inline on
the same page. When configuring the login as a standalone page, unsuccessful authentication
attempts should be redirected to a login form created by the website for this purpose,
using the The part that does the actual login is handled by the form-login-handler.
The action of the form should point at this handler, which is configured within
Apache httpd as follows:file provider is implemented
by the
AuthUserFile conf/passwd
@@ -84,14 +84,14 @@
SessionCookieName session path=/
SessionCryptoPassphrase secret
Username: <input type="text" name="httpd_username" value="" />
@@ -127,7 +127,7 @@
Alternatively, the URL to redirect the user to on success can be embedded within the login form, as in the example below. As a result, the same form-login-handler can be reused for different areas of a website.
@@ -169,9 +169,9 @@A risk exists that under certain circumstances, the login form configured +
A risk exists that under certain circumstances, the login form configured
using inline login may be submitted more than once, revealing login credentials to
the application running underneath. The administrator must ensure that the underlying
application is properly secured to prevent abuse. If in doubt, use the
@@ -190,7 +190,7 @@
To configure inline authentication, the administrator overrides the error document returned by the HTTP_UNAUTHORIZED status code with a custom error document containing the login form, as follows:
@@ -206,7 +206,7 @@ SessionCookieName session path=/The error document page should contain a login form with an empty action property, as per the example below. This has the effect of submitting the form to the original protected URL, without the page having to know what that @@ -268,7 +268,7 @@
One option is to use the
Another option is to render the login form using a CGI script or other dynamic technology.
@@ -339,7 +339,7 @@The
The file provider is implemented
by the
The
By populating the form with fields described by
-
By populating the form with fields described by
-
By populating the form with fields described by
- The If a login request arrives that exceeds this size, the whole request will be aborted
with the HTTP response code If you have populated the form with fields described by
- Use this directive if you have a dedicated login page to redirect users to.HTTP_REQUEST_TOO_LARGE.
Use this directive if you have a dedicated login URL, and you have not embedded the destination page in the login form.
@@ -613,7 +613,7 @@ lower level modulesWhen a URI is accessed that is served by the handler form-logout-handler,
the page specified by this directive will be shown to the end user. For example:
An attempt to access the URI /logout/ will result in the user being logged out, and the page /loggedout.html will be displayed. Make sure that the page loggedout.html is not password protected, otherwise the page will not be @@ -667,7 +667,7 @@ lower level modules specifies a passphrase which, if present in the user session, causes Apache httpd to bypass authentication checks for the given URL. It can be used on high traffic websites to reduce the load induced on authentication infrastructure.
- +The passphrase can be inserted into a user session by adding this directive to the
configuration for the form-login-handler. The form-login-handler
itself will always run the authentication checks, regardless of whether a passphrase
diff --git a/docs/manual/mod/mod_authn_core.xml b/docs/manual/mod/mod_authn_core.xml
index fd3284cdc6b..0edbfc915bd 100644
--- a/docs/manual/mod/mod_authn_core.xml
+++ b/docs/manual/mod/mod_authn_core.xml
@@ -22,7 +22,7 @@
This module provides core authentication capabilities to
- allow or deny access to portions of the web site.
- This module provides core authentication capabilities to
+ allow or deny access to portions of the web site.
+ Extended authentication providers can be created
- within the configuration file and assigned an alias name. The alias
- providers can then be referenced through the directives
- Extended authentication providers can be created
+ within the configuration file and assigned an alias name. The alias
+ providers can then be referenced through the directives
+ The example below creates two different ldap authentication
+ The example below creates two different ldap authentication
provider aliases based on the ldap provider. This allows
a single authenticated location to be serviced by multiple ldap
hosts:
-
-
+
Alias /secure /webpages/secure
<Directory /webpages/secure>
Allow from all
-
+
AuthBasicProvider ldap-other-alias ldap-alias1
-
+
AuthType Basic
AuthName LDAP_Protected_Place
Require valid-user
@@ -213,10 +213,10 @@ authentication
tree will typically continue to send authentication HTTP headers
or cookies with each request, regardless of whether the server
actually requires authentication for every resource.
<AuthnProviderAlias> and
</AuthnProviderAlias> are used to enclose a group of
- authentication directives that can be referenced by the alias name
+ authentication directives that can be referenced by the alias name
using one of the directives
This module provides authentication front-ends such as
-
There are two phases in granting access to a user. The first
phase is authentication, in which the
ldap value. The authz_ldap handler extends the
+ authentication provider can be enabled through the
+ ldap value. The authz_ldap handler extends the
ldap-user, ldap-dn and ldap-group
+ by adding ldap-user, ldap-dn and ldap-group
values.
Require ldap-attribute
+ Require ldap-attribute
directive, and the attribute fetched from the LDAP directory
- matches the given value.Require ldap-filter
+ Require ldap-filter
directive, and the search filter successfully finds a single user
- object that matches the dn of the authenticated user.Require valid-user
+ Require valid-user
directive. (requires Require group directive, and
- Apache's ldap-user, ldap-dn,
- ldap-group, ldap-attribute and
- ldap-filter. Other authorization types may also be
+ a user is allowed to access a resource. mod_authnz_ldap extends the
+ authorization types with ldap-user, ldap-dn,
+ ldap-group, ldap-attribute and
+ ldap-filter. Other authorization types may also be
used but may require that additional authorization modules be loaded.
The following directives would allow access for Bob Ellis, Tom Jackson, Barbara Jensen, Fred User, Allan Jefferson, and Paul Tilley but would not - allow access for Jim Swenson, or Elliot Rhodes (since they are at a + allow access for Jim Swenson, or Elliot Rhodes (since they are at a sub-group depth of 2):
The following directive would grant access to anyone with the attribute employeeType = active
Multiple attribute/value pairs can be specified on the same line
- separated by spaces or they can be specified in multiple
- Require ldap-attribute directives. The effect of listing
- multiple attribute/values pairs is an OR operation. Access will be
- granted if any of the listed attribute values match the value of the
- corresponding attribute in the user object. If the value of the
+ separated by spaces or they can be specified in multiple
+ Require ldap-attribute directives. The effect of listing
+ multiple attribute/values pairs is an OR operation. Access will be
+ granted if any of the listed attribute values match the value of the
+ corresponding attribute in the user object. If the value of the
attribute contains a space, only the value must be within double quotes.
The following directive would grant access to anyone with
@@ -480,18 +480,18 @@ AuthLDAPSubGroupDepth 1
administrator to grant access based on a complex LDAP search filter.
If the dn returned by the filter search matches the authenticated user
dn, access is granted.
The following directive would grant access to anyone having a cell phone and is in the marketing department
The difference between the Require ldap-filter directive and the
- Require ldap-attribute directive is that ldap-filter
- performs a search operation on the LDAP directory using the specified search
- filter rather than a simple attribute comparison. If a simple attribute
- comparison is all that is required, the comparison operation performed by
- ldap-attribute will be faster than the search operation
+
The difference between the Require ldap-filter directive and the
+ Require ldap-attribute directive is that ldap-filter
+ performs a search operation on the LDAP directory using the specified search
+ filter rather than a simple attribute comparison. If a simple attribute
+ comparison is all that is required, the comparison operation performed by
+ ldap-attribute will be faster than the search operation
used by ldap-filter especially within a large directory.
uid.
+ directory, such as uid.
qpagePagerID. The example will grant access
only to people (authenticated via their UID) who have
- alphanumeric pagers:
+ alphanumeric pagers:
An optional second parameter can be added to the +
An optional second parameter can be added to the
when this module performs authentication, ldap attributes specified
- in the
when this module performs authorization, ldap attributes specified
- in the
If the attribute field contains the username, common name @@ -706,7 +706,7 @@ Require group mygroupfile the LDAP directory is considered a valid user, whereas FrontPage considers only those people in the local user file to be valid. By substituting the ldap-group with group file authorization, - Apache is allowed to consult the local user file (which is managed by + Apache is allowed to consult the local user file (which is managed by FrontPage) - instead of LDAP - when handling authorizing the user.
Once directives have been added as specified above,
@@ -735,7 +735,7 @@ Require group mygroupfile
.htaccess
@@ -772,7 +772,7 @@ authorization
whether LDAP has performed authentication, authorization, or both.
Require valid-user.
By default, subsequent authentication providers are only queried if a +
By default, subsequent authentication providers are only queried if a
user cannot be mapped to a DN, but not if the user can be mapped to a DN and their
- password cannot be verified with an LDAP bind.
- If
This allows users present in both LDAP and +
This allows users present in both LDAP and
If the verbatim username can't directly bind, but needs some
cosmetic transformation, see
This directive should only be used when your LDAP server doesn't - accept anonymous searches and you cannot use a dedicated + +
This directive should only be used when your LDAP server doesn't
+ accept anonymous searches and you cannot use a dedicated
The regular expression argument is compared against the current basic authentication username. The substitution argument may contain backreferences, but has no other variable interpolation.
- -This directive should only be used when your LDAP server doesn't - accept anonymous searches and you cannot use a dedicated + +
This directive should only be used when your LDAP server doesn't
+ accept anonymous searches and you cannot use a dedicated
When set, and
The ldap-attribute, ldap-user, and ldap-group (single-level only) +
The ldap-attribute, ldap-user, and ldap-group (single-level only) authorization checks use comparisons.
This directive only has effect on the comparisons performed during
nested group processing when
This directive should only be used when your LDAP server doesn't
accept anonymous comparisons and you cannot use a dedicated
If this directive is set, the value of the
+ If this directive is set, the value of the
When set, and The ldap-filter and ldap-dn authorization
+ The ldap-filter and ldap-dn authorization
checks use searches. This directive only has effect on the comparisons performed during
@@ -1213,8 +1213,8 @@ objects that are groups during sub-group processing.
If you want to specify more than one LDAP URL that Apache should try in turn, the syntax is: Caveat: If you specify multiple servers, you need to enclose the entire URL string in quotes;
-otherwise you will get an error: "AuthLDAPURL takes one argument, URL to define LDAP connection.."
+ Caveat: If you specify multiple servers, you need to enclose the entire URL string in quotes;
+otherwise you will get an error: "AuthLDAPURL takes one argument, URL to define LDAP connection.."
You can of course use search parameters on each of these.REMOTE_USER environment variable will be set to the
value of the attribute specified. Make sure that this attribute is
included in the list of attributes in the AuthLDAPUrl definition,
@@ -1132,10 +1132,10 @@ environment variable
@@ -1234,7 +1234,7 @@ You can of course use search parameters on each of these.
Once a connection has been made to a server, that @@ -1298,7 +1298,7 @@ You can of course use search parameters on each of these.
Jenson, the resulting search filter will be(&(posixid=*)(cn=Babs Jenson)).
- An optional parameter can be added to allow the LDAP Url to override +
An optional parameter can be added to allow the LDAP Url to override the connection type. This parameter can be one of the following:
ldaps://
This module provides core authorization capabilities so that
authenticated users can be allowed or denied access to portions
- of the web site.
The env provider allows access to the server
to be controlled based on the existence of an environment variable. When Require
+ href="../env.html">environment variable. When Require
env env-variable is specified, then the request is
allowed access if the environment variable env-variable
exists. The server provides the ability to set environment
@@ -170,7 +170,7 @@
used to allow access based on such factors as the clients
User-Agent (browser type), Referer, or
other HTTP request header fields.
In this case, browsers with a user-agent string beginning
with KnockKnock/2.0 will be allowed access, and all
others will be denied.
The all provider mimics the functionality the
was previously provided by the 'Allow from all' and 'Deny from all'
- directives. This provider can take one of two arguments which are
- 'granted' or 'denied'. The following examples will grant or deny
+ directives. This provider can take one of two arguments which are
+ 'granted' or 'denied'. The following examples will grant or deny
access to all requests.
Other authorization modules that implement require options
include
In most cases, for a complete authentication and authorization
configuration,
Note that searching large text files is very
inefficient; The authorization providers implemented by Apache's Apache's These authorization providers affect which hosts can
@@ -69,50 +69,50 @@ address)
The A full IP address: An IP address of a host allowed access A partial IP address: The first 1 to 3 bytes of an IP address, for subnet
restriction. A network/netmask pair: A network a.b.c.d, and a netmask w.x.y.z. For more
fine-grained subnet restriction. A network/nnn CIDR specification: Similar to the previous case, except the netmask consists of
nnn high-order 1 bits. Note that the last three examples above match exactly the
same set of hosts. IPv6 addresses and IPv6 subnets can be specified as shown
below: The A (partial) domain-name Hosts whose names match, or end in, this string are allowed
access. Only complete components are matched, so the above
example will match Review the default configuration for a list of
- patterns that you might want to explicitly ignore after using this
+ patterns that you might want to explicitly ignore after using this
directive..htaccess
files to control access to particular parts of the server.
@@ -50,16 +50,16 @@ address)
ip and host.
- Other authorization types may also be
+ Other authorization types may also be
used but may require that additional authorization modules be loaded.ip provider allows access to the server
- to be controlled based on the IP address of the remote client.
- When Require ip ip-address is specified,
+ to be controlled based on the IP address of the remote client.
+ When Require ip ip-address is specified,
then the request is allowed access if the IP address matches.
Require ip 192.168.1.104 192.168.1.205
Require ip 10 172.20 192.168.2
Require ip 2001:db8::a00:20ff:fea7:ccea/10
@@ -124,17 +124,17 @@ address)
host provider allows access to the server
- to be controlled based on the host name of the remote client.
- When Require host host-name is specified,
+ to be controlled based on the host name of the remote client.
+ When Require host host-name is specified,
then the request is allowed access if the host name matches.
Require host .net example.edu
foo.example.org but it will not
diff --git a/docs/manual/mod/mod_authz_owner.xml b/docs/manual/mod/mod_authz_owner.xml
index 5b7abda039c..2e91eb071f2 100644
--- a/docs/manual/mod/mod_authz_owner.xml
+++ b/docs/manual/mod/mod_authz_owner.xml
@@ -22,7 +22,7 @@
IndexOptions HTMLTable
+ directory listing table when IndexOptions HTMLTable
is in effect and an IndexStyleSheet is defined.
Rather than the standard even and odd
classes that would otherwise be applied to each row of the table,
@@ -656,7 +656,7 @@ indexing
HTTP Server 2.0.23 and later)
FancyIndexing constructs
- a simple table for the fancy directory listing.
+ a simple table for the fancy directory listing.
It is necessary for utf-8 enabled platforms or if file
names or description text will alternate between
left-to-right and right-to-left reading order.
You can, if desired, prevent the client from reordering the list
by also adding the Under the default mode of cache operation, the cache runs as a quick handler,
short circuiting the majority of server processing and offering the highest
cache performance available. In this mode, the cache bolts onto the front of the server,
acting as if a free standing RFC 2616 caching proxy had been placed in front of
the server. While this mode offers the best performance, the administrator may find that
under certain circumstances they may want to perform further processing on the
request after the request is cached, such as to inject personalisation into the
@@ -360,7 +360,7 @@ manager
before globally defined When acting as a forward proxy server, url-string can
- also be used to specify remote sites and proxy protocols which
+ also be used to specify remote sites and proxy protocols which
caching should be enabled for. The The The The Ordinarily, documents without a last-modified date are not cached.
Under some circumstances the last-modified date is removed (during
@@ -580,11 +580,11 @@ header.
Ordinarily, requests with query string parameters are cached separately
for each unique query string. This is according to RFC 2616/13.9 done only
- if an expiration time is specified. The
+ if an expiration time is specified. The
In the event that a document does not provide an expiry date but does
provide a last-modified date, an expiry date can be calculated based on
@@ -830,7 +830,7 @@ LastModified date.
The In a minimal configuration the following directive is all that is needed to
enable the thundering herd lock in the default system temp directory. The The A lock older than this value in seconds will be ignored, and the next
incoming request will be given the opportunity to re-establish the lock.
This mechanism prevents a slow client taking an excessively long time to refresh
an entity. When the When the It can be useful during development of cached RESTful services to have additional
information about the caching decision written to the response headers, so as to
confirm whether If the normal handler is used, this directive may appear within a
The The This directive only takes effect when the data is being saved to the
cache, as opposed to data being served from the cache. For backward-compatibility, the cgi-script handler will also be activated
for any file with the mime-type SuppressColumnSorting
+ href="#indexoptions.suppresscolumnsorting">SuppressColumnSorting
index option to remove the sort link from the top of the column,
along with the IgnoreClient index
diff --git a/docs/manual/mod/mod_buffer.xml b/docs/manual/mod/mod_buffer.xml
index 4879033448c..7bef039f7aa 100644
--- a/docs/manual/mod/mod_buffer.xml
+++ b/docs/manual/mod/mod_buffer.xml
@@ -65,7 +65,7 @@
cause the request/response to be slower than not using a buffer at
all. These filters should be used with care, and only where
necessary.
-
+
no-cache environment variable can be set to
+ no-cache environment variable can be set to
disable caching on a finer grained set of resources in versions
2.2.12 and later.
- no-cache environment variable can be set to
+ no-cache environment variable can be set to
disable caching on a finer grained set of resources in versions
2.2.12 and later.Cache-Control and other headers have been correctly
used by the service and client.application/x-httpd-cgi. The
use of the magic mime-type is deprecated.
The character set names in this example work with the iconv translation support in Solaris 8.
- +In addition, a location for the DAV lock database must be
specified in the global section of your httpd.conf
file using the PQconnectdb1 to only allow html files to be compressed (see
below). If you set this to anything but 1 it
will be ignored.
If you want to restrict the compression to particular MIME types
in general, you may use the
This Example will uncompress gzip'ed output from example.com, so other filters can do further processing with it.
- +The
Now if a request contains a Content-Encoding:
gzip header, the body will be automatically decompressed.
Few browsers have the ability to gzip request bodies. However,
@@ -216,7 +216,7 @@ client
not understand it.
If you use some special exclusions dependent
- on, for example, the User-Agent header, you must
+ on, for example, the User-Agent header, you must
manually configure an addition to the Vary header
to alert proxies of the additional restrictions. For example,
in a typical configuration where the addition of the DEFLATE
@@ -225,7 +225,7 @@ client
If your decision about compression depends on other information
than request headers (e.g. HTTP version), you have to set the
The The value must between 1 (less compression) and 9 (more compression). It is a module that sends static content at a bandwidth rate limit, defined
-by the various old modem standards. So, you can browse your site with a 56k
+by the various old modem standards. So, you can browse your site with a 56k
V.92 modem, by adding something like this: Previously to do bandwidth rate limiting modules would have to block an entire
-thread, for each client, and insert sleeps to slow the bandwidth down.
-Using the new suspend feature, a handler can get callback N milliseconds in
-the future, and it will be invoked by the Event MPM on a different thread,
+thread, for each client, and insert sleeps to slow the bandwidth down.
+Using the new suspend feature, a handler can get callback N milliseconds in
+the future, and it will be invoked by the Event MPM on a different thread,
once the timer hits. From there the handler can continue to send data to the client.Vary header to the value *. This prevents
@@ -347,7 +347,7 @@ client
The two functions are separated so that you can completely remove (or replace) automatic index generation should you want - to.
+ to.A "trailing slash" redirect is issued when the server
receives a request for a URL
@@ -95,7 +95,7 @@ a directory
executed if neither index.html or index.txt
existed in a directory.
A single argument of "disabled" prevents
A single argument of "disabled" prevents
A request for http://example.com/docs/ would
return a temporary redirect to http://example.com/docs/index.html
+ >http://example.com/docs/index.html
if it exists.
This module allows for control of internal environment variables that
are used by various Apache HTTP Server modules. These variables are also
provided to CGI scripts as native system environment variables, and available
- for use in SSI pages. Environment variables may be passed from the shell
- which invoked the
Specifies one or more native system environment variables to make available
as internal environment variables, which are available to Apache HTTP Server modules
- as well as propogated to CGI scripts and SSI pages. Values come from the
- native OS environment of the shell which invoked the
+ as well as propogated to CGI scripts and SSI pages. Values come from the
+ native OS environment of the shell which invoked the
Sets an internal environment variable, which is then available to Apache +
Sets an internal environment variable, which is then available to Apache HTTP Server modules, and passed on to CGI scripts and SSI pages.
To modify Cache-Control directives other than
max-age (see
module="mod_headers">Header directive.
When the Expires header is already part of the response
- generated by the server, for example when generated by a CGI script or
+ generated by the server, for example when generated by a CGI script or
proxied from an origin server, this module does not change or add
an Expires or Cache-Control header.
mode=modeDon't bother asking for a directive which recursively
- caches all the files in a directory. Try this instead... See the
+ caches all the files in a directory. Try this instead... See the
onsuccess or the table that
corresponds to always. "Always" in this context refers to
- whether headers you add will be sent during both a successful and unsucessful
+ whether headers you add will be sent during both a successful and unsucessful
response, but if your action is a function of an existing header, you
will have to read on for further complications.
- The default value of onsuccess may need to be changed to
+
The default value of onsuccess may need to be changed to
always under the circumstances similar to those listed below.
Note also that repeating this directive with both conditions makes sense in
- some scenarios because always is not a superset of
+ some scenarios because always is not a superset of
onsuccess with respect to existing headers:
always is used in the ultimate response.always and not in the default table.onsuccess condition.This module processes .map files, thereby
replacing the functionality of the imagemap CGI
program. Any directory or document type configured to use the
- handler imap-file (using either
+ handler imap-file (using either
timefmt.
- Attributes:
+Attributes:
varThe decoding attribute must precede the
corresponding var attribute to be effective.
encodingSpecifies how Apache should encode special characters
contained in the variable before outputting them. If set
@@ -434,7 +434,7 @@
precede the corresponding var attribute to
be effective.
encodingSpecifies how Apache should encode special characters contained in the variable before setting them. The default is @@ -631,7 +631,7 @@
string1 = string2
string1 == string2
string1 != string2Compare string1 with string2. If
string2 has the form /string2/
then it is treated as a regular expression. Regular expressions are
@@ -737,7 +737,7 @@
parsed expression tokenizer information, the parse tree and how it is
evaluated into the output sent to the client.
All slashes which are not intended to act as delimiters in your regex must be escaped. This is regardless of their meaning to the regex engine.
@@ -829,7 +829,7 @@ directive]"You may want to use this option if you have 2 servers parsing the output of a file each processing different commands (possibly at - different times).
+ different times).The example given above, which also specifies a matching
-
This directive changes the format in which date strings are displayed +
This directive changes the format in which date strings are displayed
when echoing DATE environment variables. The
formatstring is as in strftime(3) from the
C standard library.
offLast-Modified header will be stripped from responses,
unless the full as described below.onLast-Modified header will be respected if already
present in a response, and added to the response if the response is a
file and the header is missing. The
#if flow control elements. This directive allows to
switch to the old syntax which is compatible
- with Apache HTTPD version 2.2.x and earlier.
+ with Apache HTTPD version 2.2.x and earlier.
@@ -1040,14 +1040,14 @@ set
returned file to be the last modified time of the file. If
it is not set, then no last-modified date is sent. Setting
this bit allows clients and proxies to cache the result of
- the request.
+ the request.
You would not want to use the full option, unless you assure the
group-execute bit is unset for every SSI script which might #include a CGI or otherwise produces different output on
each hit (or could potentially change on subsequent requests).
The
You will probably want to use
You will probably want to use
Other views of the configuration information are available by
appending a query to the server-info request. For
example, http://your.host.example.com/server-info?config
will show all configuration directives.
?<module-name>If a balancer is configured as follows:
- +| worker | a | diff --git a/docs/manual/mod/mod_lbmethod_bytraffic.xml b/docs/manual/mod/mod_lbmethod_bytraffic.xml index 989328b9c23..ddf982dbba5 100644 --- a/docs/manual/mod/mod_lbmethod_bytraffic.xml +++ b/docs/manual/mod/mod_lbmethod_bytraffic.xml @@ -52,7 +52,7 @@ provides the
|---|
| worker | a | diff --git a/docs/manual/mod/mod_lbmethod_heartbeat.xml b/docs/manual/mod/mod_lbmethod_heartbeat.xml index 71eaf16624a..7e831c55e54 100644 --- a/docs/manual/mod/mod_lbmethod_heartbeat.xml +++ b/docs/manual/mod/mod_lbmethod_heartbeat.xml @@ -46,7 +46,7 @@The process ID of the child that serviced the request. | ||||||
|---|---|---|---|---|---|---|---|---|
%{format}P |
- The process ID or thread ID of the child that serviced the + | The process ID or thread ID of the child that serviced the
request. Valid formats are pid, tid,
- and hextid. hextid requires APR 1.2.0 or
+ and hextid. hextid requires APR 1.2.0 or
higher.
| ||||||
%t |
- Time the request was received, in the format [18/Sep/2011:19:18:28 -0400].
+ | Time the request was received, in the format [18/Sep/2011:19:18:28 -0400].
The last number indicates the timezone offset from GMT | ||||||
%{format}t |
@@ -248,7 +248,7 @@
comma-separated list of status codes immediately following the
"%". The status code list may be peceded by a "
Logs User-agent on 400 errors and 501 errors only. For
other status codes, the literal string "-" will be
logged. |
-
+
||
%!200,304,302{Referer}i |
- Logs Referer on all requests that do
+ | Logs Referer on all requests that do
not return one of the three specified codes,
"-" otherwise.
|
| BASELINE_CONTROL | 26 | |
| MKACTIVITY | 27 |
Later version of ajp13, will transport +
Later version of ajp13, will transport additional methods, even if they are not in this list.
At present, there are 3 load balancer scheduler algorithms available
for use: Request Counting, Weighted Traffic Counting and Pending Request
Counting. These are controlled via the lbmethod value of
- the Balancer definition. See the
This is assigned the route parsed from the current +
This is assigned the route parsed from the current request.
This is assigned the name of the balancer used for the current +
This is assigned the name of the balancer used for the current
request. The value is something like balancer://foo.
This is assigned the route of the worker that will be +
This is assigned the route of the worker that will be used for the current request.
This module requires the service of +
This module requires the service of
This module requires the service of
The file is constructed from a plain text file format using
- the httxt2dbm
+ the httxt2dbm
utility.
This module requires the service of
Thus, in order to get the ability of handling the FastCGI
@@ -40,7 +40,7 @@
Unlike mod_fcgid
- and mod_fastcgi,
+ and mod_fastcgi,
This application should be able to handle multiple concurrent
- connections.
The balanced gateway needs
The module has a The module has a At this time the only data passed to the external process is the client
- socket. To receive a client socket, call recvfrom with an allocated
+ At this time the only data passed to the external process is the client
+ socket. To receive a client socket, call recvfrom with an allocated
mod_proxy_fdpass uses the ability of AF_UNIX domain
- sockets to pass an
+ mod_proxy_fdpass uses the ability of AF_UNIX domain
+ sockets to pass an
open file descriptor to allow another process to finish handling a request.
proxy_fdpass_flusher provider interface,
+ proxy_fdpass_flusher provider interface,
which allows another module to optionally send the response headers, or even
the start of the response body. The default flush provider disables keep-alive,
and sends the response headers, letting the external process just send a
response body.struct cmsghdr. Future versions of this module may include
more data after the client socket, but this is not implemented at this time.
diff --git a/docs/manual/mod/mod_proxy_ftp.xml b/docs/manual/mod/mod_proxy_ftp.xml
index 9c2e012f52a..77582e711b5 100644
--- a/docs/manual/mod/mod_proxy_ftp.xml
+++ b/docs/manual/mod/mod_proxy_ftp.xml
@@ -154,7 +154,7 @@
See the
The balanced gateway needs
Provides a rate_limit filter to limit client bandwidth.
-The connection speed to be simulated is specified, in kb/s, using the environment
+
Provides a rate_limit filter to limit client bandwidth.
+The connection speed to be simulated is specified, in kb/s, using the environment
variable rate-limit.
This module is used to treat the remote host which initiated the +
This module is used to treat the remote host which initiated the request as the originating remote host as identified by httpd for the purposes of authorization and logging, even where that remote host is behind a load balancer, front end server, or proxy server.
-The module replaces the apparent remote (client) IP/hostname for +
The module replaces the apparent remote (client) IP/hostname for
the request with the IP address reported in the request header
configured with the
%a and %h
- directives. It also determines the machine probed for an inetd
- identity by Apache identifies the client with the connection's remote_ip value, - and the connection remote_host and remote_logname are derived from this - value. These fields play a role in authentication, authorization and + and the connection remote_host and remote_logname are derived from this + value. These fields play a role in authentication, authorization and logging and other purposes by other loadable modules.
mod_remoteip replaces the true remote_ip with the advertised remote_ip as provided by a proxy, for every evaluation of the client that occurs in the - server, and resets the remote_host and remote_logname values to trigger a + server, and resets the remote_host and remote_logname values to trigger a fresh dns or ident query of the remote IP address.
-When multiple, comma delimited remote IP addresses are listed in the +
When multiple, comma delimited remote IP addresses are listed in the header value, they are processed in Right-to-Left order. Processing halts when a given remote IP address is not trusted to present the - preceeding IP address. The header field is updated to this remaining + preceeding IP address. The header field is updated to this remaining list of unconfirmed IP addresses, or if all IP addresses were trusted, this header is removed from the request altogether.
@@ -97,7 +97,7 @@ balancer via the request headers. All internal addresses 10/8, 172.16/12, 192.168/16, 169.254/16 and 127/8 blocks (and IPv6 addresses outside of the public 2000::/3 block) are only evaluated by mod_remoteip whenThe
The
The
The
The
httpd.conf or in .htaccess. The path generated
- by a rewrite rule can include a query string, or can lead to internal
- sub-processing, external request redirection, or internal proxy
+ path-info section. A rewrite rule can be invoked in
+ httpd.conf or in .htaccess. The path generated
+ by a rewrite rule can include a query string, or can lead to internal
+ sub-processing, external request redirection, or internal proxy
throughput.
Further details, discussion, and examples, are provided in the @@ -142,7 +142,7 @@ later
InheritThis forces the current configuration to inherit the configuration of the parent. In per-virtual-server context, this means that the maps, conditions and rules of the main @@ -157,7 +157,7 @@ later of local rules - has no influence on this behavior. If local rules forced the rewriting to stop, the inherited rules won't be processed.
- +InheritBefore Like Inherit above, but the rules from the parent scope
- are applied before rules specified in the child scope.
+ are applied before rules specified in the child scope.
Available in Apache HTTP Server 2.3.10 and later.
httxt2dbm
+ the httxt2dbm
utility. (Details ...).htaccess file, This directive is required for per-directory rewrites whose context
is a directory made available via the
.htaccess file where you want to use The example below demonstrates how to map
- http://example.com/myapp/index.html to
- /home/www/example/newsite.html, in a .htaccess file. This
+
The example below demonstrates how to map
+ http://example.com/myapp/index.html to
+ /home/www/example/newsite.html, in a .htaccess file. This
assumes that the content available at
http://example.com/ is on disk at /home/www/example/
SERVER_NAME and SERVER_PORT depend on the values of +
SERVER_NAME and SERVER_PORT depend on the values of
GET
/index.html HTTP/1.1"). This does not
include any additional headers sent by the
- browser. This value has not been unescaped
+ browser. This value has not been unescaped
(decoded), unlike most other variables below.
REQUEST_URIREQUEST_FILENAME is referenced. Otherwise,
- such as when used in virtual host context, the same
+ been determined by the server at the time
+ REQUEST_FILENAME is referenced. Otherwise,
+ such as when used in virtual host context, the same
value as REQUEST_URI.HTTPSIn
In
In
If you wish to match against the hostname, port, or query string, use a
%{HTTP_HOST}, %{SERVER_PORT}, or
@@ -937,12 +937,12 @@ restriction is required for security reasons.
%{REQUEST_URI} variable in
a $N in the substitution string!
Sessions may be stored on the server, or may be stored on the browser. Sessions may also be optionally encrypted for added security. These features are divided into several modules in addition to @@ -55,7 +55,7 @@
Sessions may be manipulated from other modules that depend on the session, or the session may be read from and written to using environment variables and HTTP headers, as appropriate.
- +At the core of the session interface is a table of key and value pairs that are made accessible across browser requests.
- +These pairs can be set to any valid string, as needed by the application making use of the session.
- +The session interface is primarily developed for the use by other @@ -82,31 +82,31 @@
Apache can be configured to keep track of per user sessions stored on a particular server or group of servers. This functionality is similar to the sessions available in typical application servers.
- +If configured, sessions are tracked through the use of a session ID that is stored inside a cookie, or extracted from the parameters embedded within the URL query string, as found in a typical GET request.
- +As the contents of the session are stored exclusively on the server, there is an expectation of privacy of the contents of the session. This does have performance and resource implications should a large number of sessions be present, or where a large number of webservers have to share sessions with one another.
- +The
Where keeping track of a session on a server is too resource intensive or inconvenient, the option exists to store the contents of the session within a cookie on the client browser instead.
- +This has the advantage that minimal resources are required on the server to keep track of sessions, and multiple servers within a server farm have no need to share session information.
- +The contents of the session however are exposed to the client, with a
corresponding risk of a loss of privacy. The
Creating a session is as simple as turning the session on, and deciding
where the session will be stored. In this example, the session will be
stored on the browser, in a cookie called session.
X-Replace-Session.
-
+
The header should contain name value pairs expressed in the same format as a query string in a URL, as in the example below. Setting a key to the empty string has the effect of removing that key from the session.
- +Using the "show cookies" feature of your browser, you would have seen a clear text representation of the session. This could potentially be a problem should the end user need to be kept unaware of the contents of the session, or where a third party could gain unauthorised access to the data within the session.
- +The contents of the session can be optionally encrypted before being
placed on the browser using the
The session will be automatically decrypted on load, and encrypted on save by Apache, the underlying application using the session need have no knowledge that encryption is taking place.
- +Sessions stored on the server rather than on the browser can also be
encrypted as needed, offering privacy where potentially sensitive
information is being shared between webservers in a server farm using
the
On Unix and similar platforms, MPMs can be built as DSO modules and
dynamically loaded into the server in the same manner as other DSO
modules. Building MPMs as DSO modules allows the MPM to be changed by
- updating the
This feature is enabled using the diff --git a/docs/manual/new_features_2_4.xml b/docs/manual/new_features_2_4.xml index 352273f85ac..99c0fd8d275 100644 --- a/docs/manual/new_features_2_4.xml +++ b/docs/manual/new_features_2_4.xml @@ -38,11 +38,11 @@
trace1
@@ -51,13 +51,13 @@
cache_status hook, which is called when the caching
decision becomes known. A default implementation is provided
diff --git a/docs/manual/platform/netware.xml b/docs/manual/platform/netware.xml
index c3d2fc313be..39e16edf889 100644
--- a/docs/manual/platform/netware.xml
+++ b/docs/manual/platform/netware.xml
@@ -54,9 +54,9 @@
Apache 2.0 is designed to run on NetWare 6.0 service pack 3 +
Apache 2.0 is designed to run on NetWare 6.0 service pack 3 and above. If you are running a service pack less - than SP3, you must install the latest + than SP3, you must install the latest NetWare Libraries for C (LibC).
@@ -66,7 +66,7 @@Apache 2.0 for NetWare can also be run in a NetWare 5.1 environment as long as the latest service pack or the latest version of the NetWare Libraries - for C (LibC) has been installed . WARNING: Apache 2.0 + for C (LibC) has been installed . WARNING: Apache 2.0 for NetWare has not been targeted for or tested in this environment.
@@ -81,7 +81,7 @@ will list the current release, any more recent alpha or beta-test releases, together with details of mirror web and anonymous ftp sites. Binary builds of the latest releases of - Apache 2.0 for NetWare can be downloaded from + Apache 2.0 for NetWare can be downloaded from here. @@ -91,7 +91,7 @@There is no Apache install program for NetWare currently. If you - are building Apache 2.0 for NetWare from source, you will need to + are building Apache 2.0 for NetWare from source, you will need to copy the files over to the server manually.
Follow these steps to install Apache on NetWare from the @@ -127,7 +127,7 @@
SYS:/APACHE2
called BINHTDIGEST.NLM, HTPASSWD.NLM,
+ HTDIGEST.NLM, HTPASSWD.NLM,
HTDBM.NLM, LOGRES.NLM, ROTLOGS.NLM
to SYS:/APACHE2/BINSYS:/APACHE2/CONF directory and rename to
HTTPD.CONF
- MIME.TYPES, CHARSET.CONV and
+ MIME.TYPES, CHARSET.CONV and
MAGIC files to SYS:/APACHE2/CONF directory\HTTPD-2.0\DOCS\ICONS
@@ -174,9 +174,9 @@
Apache may be installed to other volumes besides the default SYS volume.
During the build process, adding the keyword "install" to the makefile command line
- will automatically produce a complete distribution package under the subdirectory
- DIST. Install Apache by simply copying the distribution that was produced
- by the makfiles to the root of a NetWare volume (see: Compiling Apache for
+ will automatically produce a complete distribution package under the subdirectory
+ DIST. Install Apache by simply copying the distribution that was produced
+ by the makfiles to the root of a NetWare volume (see: Compiling Apache for
NetWare below).
Apache 2.0 for NetWare includes a set of command line directives that can
be used to modify or display information about the running instance of the
- web server. These directives are only available while Apache is running. Each
+ web server. These directives are only available while Apache is running. Each
of these directives must be preceded by the keyword APACHE2.
Apache is configured by reading configuration files usually stored
- in the conf directory. These are the same as files used
+ in the conf directory. These are the same as files used
to configure the Unix version, but there are a few different directives for
Apache on NetWare. See the Apache
documentation for all the available directives.
The directives that accept filenames as arguments must use - NetWare filenames instead of Unix names. However, because Apache - uses Unix-style names internally, forward slashes must be used - rather than backslashes. It is recommended that all rooted file paths - begin with a volume name. If omitted, Apache will assume the +
The directives that accept filenames as arguments must use
+ NetWare filenames instead of Unix names. However, because Apache
+ uses Unix-style names internally, forward slashes must be used
+ rather than backslashes. It is recommended that all rooted file paths
+ begin with a volume name. If omitted, Apache will assume the
SYS: volume which may not be correct.
Compiling Apache requires MetroWerks CodeWarrior 6.x or higher. Once - Apache has been built, it can be installed to the root of any NetWare +
Compiling Apache requires MetroWerks CodeWarrior 6.x or higher. Once
+ Apache has been built, it can be installed to the root of any NetWare
volume. The default is the sys:/Apache2 directory.
Before running the server you must fill out the conf
@@ -497,7 +497,7 @@
for example:
PCRESDK to the location
where you installed the source code for the PCRE Library, for example:
\httpd-2.0 and build the prebuild utilities
by running "gmake -f nwgnumakefile prebuild". This target will create
- the directory \httpd-2.0\nwprebuild and copy each of the utilities
+ the directory \httpd-2.0\nwprebuild and copy each of the utilities
to this location that are necessary to complete the following build steps.
\httpd-2.0\nwprebuild\GENCHARS.nlm and
+ \httpd-2.0\nwprebuild\GENCHARS.nlm and
\httpd-2.0\nwprebuild\DFTABLES.nlm to the SYS: volume of a
NetWare server and run them using the following commands:
EXPERIMENTAL:
By default Apache for NetWare uses the built-in module +
By default Apache for NetWare uses the built-in module
Before mod_ssl can be built for the NetWare platform, the OpenSSL - libraries must be provided. This can be done through the following + libraries must be provided. This can be done through the following steps:
NetWare/set_env.bat and modify any
- tools and utilities paths so that they correspond to your build
+ NetWare/set_env.bat and modify any
+ tools and utilities paths so that they correspond to your build
environment.To use Visual C++ 6.0 or 7.0 (Studio 2000 .NET), the Platform SDK
- environment must be prepared using the setenv.bat
+ environment must be prepared using the setenv.bat
script (installed by the Platform SDK) before starting the command
line build or launching the msdev/devenv GUI environment. Installing
the Platform SDK for Visual Studio Express versions (2003 and later)
@@ -115,7 +115,7 @@
Several steps recommended here require a perl interpreter during the build preparation process, but it is otherwise not required.
- +To install Apache within the build system, several files are
modified using the awk.exe utility. awk was chosen since
it is a very small download (compared with Perl or WSH/VB) and
@@ -141,12 +141,12 @@
awk.exe is in your system path.
gawk.exe and that the file
+ (http://www.cygwin.com/)
+ the awk utility is named gawk.exe and that the file
awk.exe is really a symlink to the gawk.exe
- file. The Windows command shell does not recognize symlinks, and
- because of this building InstallBin will fail. A workaround is
- to delete awk.exe from the cygwin installation and
+ file. The Windows command shell does not recognize symlinks, and
+ because of this building InstallBin will fail. A workaround is
+ to delete awk.exe from the cygwin installation and
copy gawk.exe to awk.exe. Also note the
cygwin/mingw ports of gawk 3.0.x were buggy, please upgrade to 3.1.x
before attempting to use any gawk port.
[Optional] zlib library (for
Zlib must be installed into a srclib subdirectory named
- zlib. This must be built in-place. Zlib can be obtained
+ zlib. This must be built in-place. Zlib can be obtained
from http://www.zlib.net/ -- the
-
Configuring and building OpenSSL requires perl to be installed.
-OpenSSL must be installed into a srclib subdirectory
- named openssl, obtained from
+
OpenSSL must be installed into a srclib subdirectory
+ named openssl, obtained from
http://www.openssl.org/source/, in order to compile
+ >http://www.openssl.org/source/, in order to compile
abs.exe project, which
- is ab.c with SSL support enabled. To prepare OpenSSL to be linked
+ is ab.c with SSL support enabled. To prepare OpenSSL to be linked
to Apache mod_ssl or abs.exe, and disable patent encumbered features
in OpenSSL, you might use the following build commands:
You can add your apr-util dbd and dbm provider choices with the - additional make (environment) variables DBD_LIST and DBM_LIST, + additional make (environment) variables DBD_LIST and DBM_LIST, see the comments about [Optional] Database libraries, above. Review the initial comments in Makefile.win for additional options that can be provided when invoking the build.
@@ -319,7 +319,7 @@Visual Studio 2002 (.NET) and later users should also use the Build
menu, Configuration Manager dialog to uncheck both the Debug
- and Release Solution modules abs,
+ and Release Solution modules abs,
apr_db*. These modules
are built by invoking nmake, or the IDE directly with the
@@ -340,8 +340,8 @@
You must first build all projects in order to create all dynamic - auto-generated targets, so that dependencies can be parsed correctly. +
You must first build all projects in order to create all dynamic
+ auto-generated targets, so that dependencies can be parsed correctly.
Build the entire project from within the Visual Studio 6.0 (98) IDE,
using the BuildAll target, then use the Project Menu Export
for all makefiles (checking on "with dependencies".) Run the following
@@ -364,7 +364,7 @@
a sysincl.dat file, which lists all exceptions. Update
this file (including both forward and backslashed paths, such as both
sys/time.h and sys\time.h) to ignore such
- newer dependencies. Including local-install paths in a distributed
+ newer dependencies. Including local-install paths in a distributed
.mak file will cause the build to fail completely.
If you contribute back a patch that revises project files, we diff --git a/docs/manual/platform/windows.xml b/docs/manual/platform/windows.xml index 15a44c61dd0..a2fd8f5bec7 100644 --- a/docs/manual/platform/windows.xml +++ b/docs/manual/platform/windows.xml @@ -29,7 +29,7 @@
This document explains how to install, configure and run Apache 2.3 under Microsoft Windows. If you have questions after reviewing the documentation (and any event and error logs), you - should consult the peer-supported + should consult the peer-supported users' mailing list.
@@ -71,7 +71,7 @@ - +htcacheclean
[ -n ]
[ -t ]
@@ -113,7 +113,7 @@
removed, however with some configurations the large number of
directories created may require attention. If your configuration
requires a very large number of directories, to the point that
- inode or file allocation table exhaustion may become an issue, use
+ inode or file allocation table exhaustion may become an issue, use
of this option is advised.
-ppath-Dpasswdfile-c is given, this file is created if it does not already exist,
diff --git a/docs/manual/programs/httpd.xml b/docs/manual/programs/httpd.xml
index 6ef9eb3b665..c20a027b994 100644
--- a/docs/manual/programs/httpd.xml
+++ b/docs/manual/programs/httpd.xml
@@ -51,7 +51,7 @@
[ -C directive ] [ -c
directive ] [ -D parameter ]
[ -e level ] [ -E
- file ]
+ file ]
[ -k start|restart|graceful|stop|graceful-stop ]
[ -R directory ] [ -h ]
[ -l ] [ -L ] [ -S ]
@@ -192,7 +192,7 @@ the Apache service; and uninstall the Apache service.-whttxt2dbm is used to generate dbm files from text input, for
- use in dbm map type.
Log files will be created, in the directory where are running the
- script, for each virtual host name that appears in the combined log file.
+ script, for each virtual host name that appears in the combined log file.
These logfiles will named after the hostname, with a
.log file extension.
-lstrftime(3) formatting with size-based
+interval or for strftime(3) formatting with size-based
rotation.-L linknametail -F linkname.-p program/var/logs/errorlog.%Y-%m-%d with log rotation at 5
megabytes, but 5 megabytes was reached twice in the same day, the
same log file name would be produced and log rotation would keep
@@ -186,7 +186,7 @@ an offset.errorlog.YYYY-mm-dd-HH_MM_SS.
-
+
%m%p%S%U%U%W%W%w%w%X%xThis document supplements the
This document supplements the This document supplements the This document supplements the A common technique for distributing the burden of
- server load or storage space is called "sharding".
+ A common technique for distributing the burden of
+ server load or storage space is called "sharding".
When using this method, a front-end server will use the
url to consistently "shard" users or objects to separate
backend servers./regenerate_page.cgi, which generates
the requested resource and saves it into the document directory, so
that the next time it is requested, a static copy can be served.
In this way, documents that are infrequently updated can be served in
static form. if documents need to be refreshed, they can be deleted
from the document directory, and they will then be regenerated the
@@ -413,7 +413,7 @@ RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2
This document supplements the This document supplements the
cookie. Some flags take one or more
arguments. Flags are not case sensitive.
-Each flag (with a few exceptions) +
Each flag (with a few exceptions) has a long and short form. While it is most common to use the short form, it is recommended that you familiarize yourself with the long form, so that you remember what each flag is supposed to do.
@@ -277,7 +277,7 @@ redirects.Using the [F] flag causes the server to return a 403 Forbidden status
code to the client. While the same behavior can be accomplished using
-the
The following rule will forbid .exe files from being
@@ -353,13 +353,13 @@ immediately without considering further rules.
If you are using .htaccess files or in
+.htaccess files or in
.htaccess file or
+request is handled, the .htaccess file or
The example given here will rewrite any request to
index.php, giving the original request as a query string
argument to index.php, however, the
index.php, the To decide whether or not to use this rule: if you prefix URLs with +
To decide whether or not to use this rule: if you prefix URLs with CGI-scripts, to force them to be processed by the CGI-script, it's likely that you will run into problems (or significant overhead) on sub-requests. In these cases, use this flag.
@@ -513,17 +513,17 @@ use of the [PT] flag causes the result of the
-If, for example, you have an
+If, for example, you have an
-Any valid HTTP response status code may be specified, -using the syntax [R=305], with a 302 status code being used by +Any valid HTTP response status code may be specified, +using the syntax [R=305], with a 302 status code being used by default if none is specified. The status code specified need not necessarily be a redirect (3xx) status code.
@@ -616,7 +616,7 @@ substitution string is dropped entirely, and rewriting is stopped as if theL were used.
In addition to response status codes, you may also specify redirect
-status using their symbolic names: temp (default),
+status using their symbolic names: temp (default),
permanent, or seeother.
@@ -652,9 +652,9 @@ module="mod_rewrite">RewriteCond only applies to the
RewriteCond apply
to several RewriteRules, one possible technique is to
-negate those conditions and use a [Skip] flag. So, you can
-use this to make pseudo if-then-else constructs: The last rule of
-the then-clause becomes skip=N, where N is the
+negate those conditions and use a [Skip] flag. So, you can
+use this to make pseudo if-then-else constructs: The last rule of
+the then-clause becomes skip=N, where N is the
number of rules in the else-clause.
If used in per-directory context, use only - (dash)
-as the substitution for the entire round of mod_rewrite processing,
-otherwise the MIME-type set with this flag is lost due to an internal
+as the substitution for the entire round of mod_rewrite processing,
+otherwise the MIME-type set with this flag is lost due to an internal
re-processing (including subsequent rounds of mod_rewrite processing).
-The L flag can be useful in this context to end the
+The L flag can be useful in this context to end the
current round of mod_rewrite processing.
This document supplements the
This document supplements the
c.t will match cat,
cot, cut, etc.+a+ matches a, aa,
+timesa+ matches a, aa,
aaa, etc*a* matches all the same things
@@ -122,7 +122,7 @@ of the string^a matches a string that begins with
the string.a$ matches a string that ends with
a.( )(ab)+
+unit, and captures a match for use in a backreference.(ab)+
matches ababab - that is, the + applies to the group.
For more on backreferences see below.[ ]
- 
Figure 1: The back-reference flow through a rule.
- 
Figure 2: Syntax of the RewriteRule directive.
- 
Figure 3: Syntax of the RewriteCond directive
This document supplements the
This document supplements the
Consider using either This document supplements the This document supplements the You can alternatively accomplish this using the
+ You can alternatively accomplish this using the
If, for whatever reason, you still want to use For sites running on a port other than 80:mod_rewrite
-- if, for example, you need this to work with a larger set of RewriteRules -
+- if, for example, you need this to work with a larger set of RewriteRules -
you might use one of the recipes below.
on, which can be
a significant performance hit.
We redirect the URL / to
/about/:
Note also that the example rewrites only the root URL. That is, it
rewrites a request for http://example.com/, but not a
-request for http://example.com/page.html. If you have in
-fact changed your document root - that is, if all of
-your content is in fact in that subdirectory, it is greatly preferable
+request for http://example.com/page.html. If you have in
+fact changed your document root - that is, if all of
+your content is in fact in that subdirectory, it is greatly preferable
to simply change your
This document supplements the
This document supplements the RewriteMap types.
The MapName is an arbitray name that you assign to the map, and which you will use in directives later on. Arguments are passed to the map via the @@ -298,9 +298,9 @@ by many requests.
When a MapType of int is used, the MapSource is one
- of the available internal RewriteMap functions. Module authors can provide
+ of the available internal RewriteMap functions. Module authors can provide
additional internal functions by registering them with the
- ap_register_rewrite_mapfunc API.
+ ap_register_rewrite_mapfunc API.
The functions that are provided by default are:
While you cannot declare a map in
per-directory context (.htaccess files or
<Directory> blocks) it is possible to
diff --git a/docs/manual/rewrite/tech.xml b/docs/manual/rewrite/tech.xml
index b664943cdfe..27c6aea5487 100644
--- a/docs/manual/rewrite/tech.xml
+++ b/docs/manual/rewrite/tech.xml
@@ -100,7 +100,7 @@ and URL matching.
RewriteBase directive below for the
trick to achieve this) and then initiates a new internal
sub-request with the new URL. This restarts processing of
- the API phases.
+ the API phases.
Again mod_rewrite tries hard to make this complicated step totally transparent to the user, but you should @@ -117,7 +117,7 @@ and URL matching.
Now when mod_rewrite is triggered in these two API phases, it
reads the configured rulesets from its configuration
structure (which itself was either created on startup for
diff --git a/docs/manual/rewrite/vhosts.xml b/docs/manual/rewrite/vhosts.xml
index f52f55c555d..7a463dd8318 100644
--- a/docs/manual/rewrite/vhosts.xml
+++ b/docs/manual/rewrite/vhosts.xml
@@ -27,9 +27,9 @@
This document supplements the This document supplements the
To find out what directives are allowed in what types of
configuration sections, check the Context of the directive.
-Everything that is allowed in
+Everything that is allowed in
SSLLogFile fileSSLLog fileSSLRequiredCiphers specSSLCipherSuite specSSLRequireCipher c1 ...SSLRequire %{SSL_CIPHER} in {"c1",
+SSLRequireCipher c1 ...SSLRequire %{SSL_CIPHER} in {"c1",
...}generalized
-SSLBanCipher c1 ...SSLRequire not (%{SSL_CIPHER} in {"c1",
+SSLBanCipher c1 ...SSLRequire not (%{SSL_CIPHER} in {"c1",
...})generalized
SSLFakeBasicAuthSSLOptions +FakeBasicAuthmerged
SSLCacheServerPath dir- functionality removed
@@ -135,7 +135,7 @@ doesn't provide.
-Environment Variables
+Environment Variables
The mapping between environment variable names used by the older
SSL solutions and the names used by mod_ssl is given in
Installation
-- Why do I get permission errors related to
+
- Why do I get permission errors related to
SSLMutex when I start Apache?
-- Why does mod_ssl stop with the error "Failed to
+
- Why does mod_ssl stop with the error "Failed to
generate temporary 512 bit RSA private key" when I start Apache?
-Why do I get permission errors related to
+Why do I get permission errors related to
SSLMutex when I start Apache?
Errors such as ``mod_ssl: Child could not open
SSLMutex lockfile /opt/apache/logs/ssl_mutex.18332 (System error follows)
@@ -55,7 +55,7 @@ generate temporary 512 bit RSA private key" when I start Apache?
Why does mod_ssl stop with the error
- "Failed to generate temporary 512 bit RSA private key" when I start
+ "Failed to generate temporary 512 bit RSA private key" when I start
Apache?
Cryptographic software needs a source of unpredictable data
to work correctly. Many open source operating systems provide
@@ -66,9 +66,9 @@ generate temporary 512 bit RSA private key" when I start Apache?
encryption. As of version 0.9.5, the OpenSSL functions that need
randomness report an error if the PRNG has not been seeded with
at least 128 bits of randomness.
- To prevent this error, mod_ssl has to provide
- enough entropy to the PRNG to allow it to work correctly. This can
- be done via the SSLRandomSeed
+
To prevent this error, mod_ssl has to provide
+ enough entropy to the PRNG to allow it to work correctly. This can
+ be done via the SSLRandomSeed
directive.
@@ -76,29 +76,29 @@ generate temporary 512 bit RSA private key" when I start Apache?
Configuration
-- Is it possible to provide HTTP and HTTPS from
+
- Is it possible to provide HTTP and HTTPS from
the same server?
- Which port does HTTPS use?
-- How do I speak HTTPS manually for testing
+
- How do I speak HTTPS manually for testing
purposes?
-- Why does the connection hang when I connect to my
+
- Why does the connection hang when I connect to my
SSL-aware Apache server?
-- Why do I get ``Connection Refused'' errors, when
+
- Why do I get ``Connection Refused'' errors, when
trying to access my newly installed Apache+mod_ssl server via HTTPS?
- Why are the
SSL_XXX variables not
available to my CGI & SSI scripts?
-- How can I switch between HTTP and HTTPS in
+
- How can I switch between HTTP and HTTPS in
relative hyperlinks?
-Is it possible to provide HTTP and HTTPS
+Is it possible to provide HTTP and HTTPS
from the same server?
- Yes. HTTP and HTTPS use different server ports (HTTP binds to
- port 80, HTTPS to port 443), so there is no direct conflict between
- them. You can either run two separate server instances bound to
- these ports, or use Apache's elegant virtual hosting facility to
- create two virtual servers, both served by the same instance of Apache
- - one responding over HTTP to requests on port 80, and the other
+
Yes. HTTP and HTTPS use different server ports (HTTP binds to
+ port 80, HTTPS to port 443), so there is no direct conflict between
+ them. You can either run two separate server instances bound to
+ these ports, or use Apache's elegant virtual hosting facility to
+ create two virtual servers, both served by the same instance of Apache
+ - one responding over HTTP to requests on port 80, and the other
responding over HTTPS to requests on port 443.
@@ -112,15 +112,15 @@ relative hyperlinks?
How do I speak HTTPS manually for testing purposes?
While you usually just use
-
+
$ telnet localhost 80
GET / HTTP/1.0
for simple testing of Apache via HTTP, it's not so easy for
HTTPS because of the SSL protocol between TCP and HTTP. With the
- help of OpenSSL's s_client command, however, you can
+ help of OpenSSL's s_client command, however, you can
do a similar check via HTTPS:
-
+
$ openssl s_client -connect localhost:443 -state -debug
GET / HTTP/1.0
@@ -137,7 +137,7 @@ relative hyperlinks?
$ curl https://localhost/
-Why does the connection hang when I connect
+Why does the connection hang when I connect
to my SSL-aware Apache server?
This can happen when you try to connect to a HTTPS server (or virtual
@@ -148,29 +148,29 @@ relative hyperlinks?
or which supports it on a non-standard port). Make sure that you're
connecting to a (virtual) server that supports SSL.
-Why do I get ``Connection Refused'' messages,
+Why do I get ``Connection Refused'' messages,
when trying to access my newly installed Apache+mod_ssl server via HTTPS?
This error can be caused by an incorrect configuration.
Please make sure that your Listen directives match your
+ >Listen directives match your
VirtualHost
- directives. If all else fails, please start afresh, using the default
+ directives. If all else fails, please start afresh, using the default
configuration provided by mod_ssl .
-Why are the SSL_XXX variables
+Why are the SSL_XXX variables
not available to my CGI & SSI scripts?
Please make sure you have ``SSLOptions +StdEnvVars''
enabled for the context of your CGI/SSI requests.
-How can I switch between HTTP and HTTPS in relative
+How can I switch between HTTP and HTTPS in relative
hyperlinks?
-Usually, to switch between HTTP and HTTPS, you have to use
- fully-qualified hyperlinks (because you have to change the URL
- scheme). Using mod_rewrite however, you can
+
Usually, to switch between HTTP and HTTPS, you have to use
+ fully-qualified hyperlinks (because you have to change the URL
+ scheme). Using mod_rewrite however, you can
manipulate relative hyperlinks, to achieve the same effect.
RewriteEngine on
@@ -187,24 +187,24 @@ relative hyperlinks?
Certificates
-- What are RSA Private Keys, CSRs and
+
- What are RSA Private Keys, CSRs and
Certificates?
- Is there a difference on startup between
a non-SSL-aware Apache and an SSL-aware Apache?
-- How do I create a self-signed SSL
+
- How do I create a self-signed SSL
Certificate for testing purposes?
- How do I create a real SSL Certificate?
-- How do I create and use my own Certificate
+
- How do I create and use my own Certificate
Authority (CA)?
-- How can I change the pass-phrase on my private
+
- How can I change the pass-phrase on my private
key file?
-- How can I get rid of the pass-phrase
+
- How can I get rid of the pass-phrase
dialog at Apache startup time?
-- How do I verify that a private key matches its
+
- How do I verify that a private key matches its
Certificate?
-- Why do connections fail with an "alert bad
+
- Why do connections fail with an "alert bad
certificate" error?
-- How can I convert a certificate from PEM to DER
+
- How can I convert a certificate from PEM to DER
format?
- Why do browsers complain that they cannot
verify my Verisign Global ID server certificate?
@@ -217,7 +217,7 @@ verify my Verisign Global ID server certificate?
you.
A Certificate Signing Request (CSR) is a digital file which contains
your public key and your name. You send the CSR to a Certifying Authority
- (CA), who will convert it into a real Certificate, by signing it.
+ (CA), who will convert it into a real Certificate, by signing it.
A Certificate contains your
RSA public key, your name, the name of the CA, and is digitally signed by
the CA. Browsers that know the CA can verify the signature on that
@@ -227,23 +227,23 @@ verify my Verisign Global ID server certificate?
description of the SSL protocol.
-Is there a difference on startup between
+Is there a difference on startup between
a non-SSL-aware Apache and an SSL-aware Apache?
-Yes. In general, starting Apache with
- mod_ssl built-in is just like starting Apache
- without it. However, if you have a passphrase on your SSL private
- key file, a startup dialog will pop up which asks you to enter the
+
Yes. In general, starting Apache with
+ mod_ssl built-in is just like starting Apache
+ without it. However, if you have a passphrase on your SSL private
+ key file, a startup dialog will pop up which asks you to enter the
pass phrase.
-
- Having to manually enter the passphrase when starting the server
- can be problematic - for example, when starting the server from the
+
+
Having to manually enter the passphrase when starting the server
+ can be problematic - for example, when starting the server from the
system boot scripts. In this case, you can follow the steps
below to remove the passphrase from
your private key. Bear in mind that doing so brings additional security
risks - proceed with caution!
-How do I create a self-signed SSL
+How do I create a self-signed SSL
Certificate for testing purposes?
- Make sure OpenSSL is installed and in your
PATH.
@@ -251,23 +251,23 @@ Certificate for testing purposes?
- Run the following command, to create
server.key and
server.crt files:
- $ openssl req -new -x509 -nodes -out server.crt
+ $ openssl req -new -x509 -nodes -out server.crt
-keyout server.key
- These can be used as follows in your httpd.conf
+ These can be used as follows in your httpd.conf
file:
SSLCertificateFile /path/to/this/server.crt
SSLCertificateKeyFile /path/to/this/server.key
- - It is important that you are aware that this
+
- It is important that you are aware that this
server.key does not have any passphrase.
- To add a passphrase to the key, you should run the following
+ To add a passphrase to the key, you should run the following
command, and enter & verify the passphrase as requested.
- $ openssl rsa -des3 -in server.key -out
+ $ openssl rsa -des3 -in server.key -out
server.key.new
$ mv server.key.new server.key
- Please backup the server.key file, and the passphrase
+ Please backup the server.key file, and the passphrase
you entered, in a secure location.
@@ -292,7 +292,7 @@ Certificate for testing purposes?
$ openssl rsa -noout -text -in server.key
- If necessary, you can also create a decrypted PEM version (not
+ If necessary, you can also create a decrypted PEM version (not
recommended) of this RSA private key with:
$ openssl rsa -in server.key -out server.key.unsecure
@@ -315,18 +315,18 @@ Certificate for testing purposes?
- You now have to send this Certificate Signing Request (CSR) to
- a Certifying Authority (CA) to be signed. Once the CSR has been
+ a Certifying Authority (CA) to be signed. Once the CSR has been
signed, you will have a real Certificate, which can be used by
- Apache. You can have a CSR signed by a commercial CA, or you can
+ Apache. You can have a CSR signed by a commercial CA, or you can
create your own CA to sign it.
- Commercial CAs usually ask you to post the CSR into a web form,
- pay for the signing, and then send a signed Certificate, which
+ Commercial CAs usually ask you to post the CSR into a web form,
+ pay for the signing, and then send a signed Certificate, which
you can store in a server.crt file.
For details on how to create your own CA, and use this to sign
a CSR, see below.
-
- Once your CSR has been signed, you can see the details of the
+
+ Once your CSR has been signed, you can see the details of the
Certificate as follows:
$ openssl x509 -noout -text -in server.crt
@@ -347,10 +347,10 @@ Certificate for testing purposes?
How do I create and use my own Certificate Authority (CA)?
The short answer is to use the CA.sh or CA.pl
- script provided by OpenSSL. Unless you have a good reason not to,
+ script provided by OpenSSL. Unless you have a good reason not to,
you should use these for preference. If you cannot, you can create a
self-signed Certificate as follows:
-
+
- Create a RSA private key for your server
(will be Triple-DES encrypted and PEM formatted):
@@ -359,11 +359,11 @@ Certificate for testing purposes?
Please backup this host.key file and the
pass-phrase you entered in a secure location.
- You can see the details of this RSA private key by using the
+ You can see the details of this RSA private key by using the
command:
$ openssl rsa -noout -text -in server.key
- If necessary, you can also create a decrypted PEM version (not
+ If necessary, you can also create a decrypted PEM version (not
recommended) of this RSA private key with:
$ openssl rsa -in server.key -out server.key.unsecure
@@ -372,7 +372,7 @@ Certificate for testing purposes?
- Create a self-signed Certificate (X509 structure)
with the RSA key you just created (output will be PEM formatted):
- $ openssl req -new -x509 -nodes -sha1 -days 365
+ $ openssl req -new -x509 -nodes -sha1 -days 365
-key server.key -out server.crt
This signs the server CSR and results in a server.crt file.
@@ -389,14 +389,14 @@ Certificate for testing purposes?
specifying the new pass-phrase. You can accomplish this with the following
commands:
-
+
$ openssl rsa -des3 -in server.key -out server.key.new
$ mv server.key.new server.key
-
+
The first time you're asked for a PEM pass-phrase, you should
- enter the old pass-phrase. After that, you'll be asked again to
+ enter the old pass-phrase. After that, you'll be asked again to
enter a pass-phrase - this time, use the new pass-phrase. If you
- are asked to verify the pass-phrase, you'll need to enter the new
+ are asked to verify the pass-phrase, you'll need to enter the new
pass-phrase a second time.
@@ -404,7 +404,7 @@ Certificate for testing purposes?
The reason this dialog pops up at startup and every re-start
is that the RSA private key inside your server.key file is stored in
encrypted format for security reasons. The pass-phrase is needed to decrypt
- this file, so it can be read and parsed. Removing the pass-phrase
+ this file, so it can be read and parsed. Removing the pass-phrase
removes a layer of security from your server - proceed with caution!
- Remove the encryption from the RSA private key (while
@@ -429,7 +429,7 @@ Certificate for testing purposes?
file are such that only root or the web server user can read it
(preferably get your web server to start as root but run as another
user, and have the key readable only by root).
-
+
As an alternative approach you can use the ``SSLPassPhraseDialog
exec:/path/to/program'' facility. Bear in mind that this is
neither more nor less secure, of course.
@@ -441,28 +441,28 @@ Certificate for testing purposes?
key" bits are included when you generate a CSR, and subsequently form
part of the associated Certificate.
To check that the public key in your Certificate matches the public
- portion of your private key, you simply need to compare these numbers.
+ portion of your private key, you simply need to compare these numbers.
To view the Certificate and the key run the commands:
-
+
$ openssl x509 -noout -text -in server.crt
$ openssl rsa -noout -text -in server.key
-
+
The `modulus' and the `public exponent' portions in the key and the
Certificate must match. As the public exponent is usually 65537
and it's difficult to visually check that the long modulus numbers
are the same, you can use the following approach:
-
+
$ openssl x509 -noout -modulus -in server.crt | openssl md5
$ openssl rsa -noout -modulus -in server.key | openssl md5
-
+
This leaves you with two rather shorter numbers to compare. It is,
- in theory, possible that these numbers may be the same, without the
- modulus numbers being the same, but the chances of this are
+ in theory, possible that these numbers may be the same, without the
+ modulus numbers being the same, but the chances of this are
overwhelmingly remote.
- Should you wish to check to which key or certificate a particular
- CSR belongs you can perform the same calculation on the CSR as
+
Should you wish to check to which key or certificate a particular
+ CSR belongs you can perform the same calculation on the CSR as
follows:
-
+
$ openssl req -noout -modulus -in server.csr | openssl md5
@@ -475,15 +475,15 @@ Certificate for testing purposes?
$ openssl x509 -in cert.pem -out cert.der -outform DER
-Why do browsers complain that they cannot
+Why do browsers complain that they cannot
verify my Verisign Global ID server certificate?
-Verisign uses an intermediate CA certificate between the root CA
- certificate (which is installed in the browsers) and the server
- certificate (which you installed on the server). You should have
+
Verisign uses an intermediate CA certificate between the root CA
+ certificate (which is installed in the browsers) and the server
+ certificate (which you installed on the server). You should have
received this additional CA certificate from Verisign.
If not, complain to them. Then, configure this certificate with the
- SSLCertificateChainFile
- directive. This ensures that the intermediate CA certificate is
+ SSLCertificateChainFile
+ directive. This ensures that the intermediate CA certificate is
sent to the browser, filling the gap in the certificate chain.
@@ -491,7 +491,7 @@ verify my Verisign Global ID server certificate?
The SSL Protocol
-- Why do I get lots of random SSL protocol
+
- Why do I get lots of random SSL protocol
errors under heavy server load?
- Why does my webserver have a higher load, now
that it serves SSL encrypted traffic?
@@ -502,7 +502,7 @@ sometimes take up to 30 seconds to establish a connection?
trying to use Anonymous Diffie-Hellman (ADH) ciphers?
- Why do I get a 'no shared ciphers'
error when connecting to my newly installed server?
-- Why can't I use SSL with name-based/non-IP-based
+
- Why can't I use SSL with name-based/non-IP-based
virtual hosts?
- Is it possible to use Name-Based Virtual
Hosting to identify different SSL virtual hosts?
@@ -511,11 +511,11 @@ Hosting to identify different SSL virtual hosts?
the lock icon in Netscape browsers stays unlocked when the dialog pops up.
Does this mean the username/password is being sent unencrypted?
- Why do I get I/O errors when connecting via
-HTTPS to an Apache+mod_ssl server with Microsoft Internet Explorer
+HTTPS to an Apache+mod_ssl server with Microsoft Internet Explorer
(MSIE)?
-Why do I get lots of random SSL protocol
+Why do I get lots of random SSL protocol
errors under heavy server load?
There can be a number of reasons for this, but the main one
is problems with the SSL session Cache specified by the
@@ -524,7 +524,7 @@ errors under heavy server load?
no cache at all) may help.
-Why does my webserver have a higher load, now
+Why does my webserver have a higher load, now
that it serves SSL encrypted traffic?
SSL uses strong cryptographic encryption, which necessitates a lot of
number crunching. When you request a webpage via HTTPS, everything (even
@@ -532,63 +532,63 @@ that it serves SSL encrypted traffic?
traffic leads to load increases.
-Why do HTTPS connections to my server
+Why do HTTPS connections to my server
sometimes take up to 30 seconds to establish a connection?
This is usually caused by a /dev/random device for
- SSLRandomSeed which blocks the
- read(2) call until enough entropy is available to service the
+ SSLRandomSeed which blocks the
+ read(2) call until enough entropy is available to service the
request. More information is available in the reference
manual for the SSLRandomSeed
directive.
What SSL Ciphers are supported by mod_ssl?
-Usually, any SSL ciphers supported by the version of OpenSSL in use,
- are also supported by mod_ssl . Which ciphers are
- available can depend on the way you built OpenSSL. Typically, at
+
Usually, any SSL ciphers supported by the version of OpenSSL in use,
+ are also supported by mod_ssl . Which ciphers are
+ available can depend on the way you built OpenSSL. Typically, at
least the following ciphers are supported:
-
+
- RC4 with SHA1
- AES with SHA1
- Triple-DES with SHA1
-
- To determine the actual list of ciphers available, you should run
+
+
To determine the actual list of ciphers available, you should run
the following:
$ openssl ciphers -v
-Why do I get ``no shared cipher'' errors, when
+Why do I get ``no shared cipher'' errors, when
trying to use Anonymous Diffie-Hellman (ADH) ciphers?
By default, OpenSSL does not allow ADH ciphers, for security
- reasons. Please be sure you are aware of the potential side-effects
+ reasons. Please be sure you are aware of the potential side-effects
if you choose to enable these ciphers.
- In order to use Anonymous Diffie-Hellman (ADH) ciphers, you must
+
In order to use Anonymous Diffie-Hellman (ADH) ciphers, you must
build OpenSSL with ``-DSSL_ALLOW_ADH'', and then add
``ADH'' into your SSLCipherSuite .
-
@@ -615,12 +615,12 @@ Virtual Hosting to identify different SSL virtual hosts?
specification added, called Server Name Indication (SNI).
The reason is that the SSL protocol is a separate layer which
- encapsulates the HTTP protocol. So the SSL session is a separate
- transaction, that takes place before the HTTP session has begun.
- The server receives an SSL request on IP address X and port Y
- (usually 443). Since the SSL request did not contain any Host:
+ encapsulates the HTTP protocol. So the SSL session is a separate
+ transaction, that takes place before the HTTP session has begun.
+ The server receives an SSL request on IP address X and port Y
+ (usually 443). Since the SSL request did not contain any Host:
field, the server had no way to decide which SSL virtual host to use.
- Usually, it just used the first one it found which matched the
+ Usually, it just used the first one it found which matched the
port and IP address specified.
If you are using a version of the web server and OpenSSL that
@@ -629,19 +629,19 @@ Virtual Hosting to identify different SSL virtual hosts?
web server can select the correct SSL virtual host.
You can, of course, use Name-Based Virtual Hosting to identify many
- non-SSL virtual hosts (all on port 80, for example) and then
+ non-SSL virtual hosts (all on port 80, for example) and then
have a single SSL virtual host (on port 443). But if you do this,
you must make sure to put the non-SSL port number on the NameVirtualHost
- directive, e.g.
+ directive, e.g.
NameVirtualHost 192.168.1.1:80
-
+
Other workaround solutions include:
- Using separate IP addresses for different SSL hosts.
- Using different port numbers for different SSL hosts.
+ Using separate IP addresses for different SSL hosts.
+ Using different port numbers for different SSL hosts.
How do I get SSL compression working?
@@ -655,50 +655,50 @@ it will be used. However, most clients still try to initially connect with an
SSLv2 Hello. As SSLv2 did not include an array of prefered compression algorithms
in its handshake, compression cannot be negotiated with these clients.
If the client disables support for SSLv2, either an SSLv3 or TLS Hello
-may be sent, depending on which SSL library is used, and compression may
-be set up. You can verify whether clients make use of SSL compression by
+may be sent, depending on which SSL library is used, and compression may
+be set up. You can verify whether clients make use of SSL compression by
logging the %{SSL_COMPRESS_METHOD}x variable.
-When I use Basic Authentication over HTTPS
-the lock icon in Netscape browsers stays unlocked when the dialog pops up.
+When I use Basic Authentication over HTTPS
+the lock icon in Netscape browsers stays unlocked when the dialog pops up.
Does this mean the username/password is being sent unencrypted?
No, the username/password is transmitted encrypted. The icon in
Netscape browsers is not actually synchronized with the SSL/TLS layer.
- It only toggles to the locked state when the first part of the actual
- webpage data is transferred, which may confuse people. The Basic
- Authentication facility is part of the HTTP layer, which is above
- the SSL/TLS layer in HTTPS. Before any HTTP data communication takes
- place in HTTPS, the SSL/TLS layer has already completed its handshake
+ It only toggles to the locked state when the first part of the actual
+ webpage data is transferred, which may confuse people. The Basic
+ Authentication facility is part of the HTTP layer, which is above
+ the SSL/TLS layer in HTTPS. Before any HTTP data communication takes
+ place in HTTPS, the SSL/TLS layer has already completed its handshake
phase, and switched to encrypted communication. So don't be
confused by this icon.
-Why do I get I/O errors when connecting via
+Why do I get I/O errors when connecting via
HTTPS to an Apache+mod_ssl server with older versions of Microsoft Internet
Explorer (MSIE)?
The first reason is that the SSL implementation in some MSIE versions has
some subtle bugs related to the HTTP keep-alive facility and the SSL close
notify alerts on socket connection close. Additionally the interaction
- between SSL and HTTP/1.1 features are problematic in some MSIE versions.
- You can work around these problems by forcing Apache not to use HTTP/1.1,
- keep-alive connections or send the SSL close notify messages to MSIE clients.
- This can be done by using the following directive in your SSL-aware
+ between SSL and HTTP/1.1 features are problematic in some MSIE versions.
+ You can work around these problems by forcing Apache not to use HTTP/1.1,
+ keep-alive connections or send the SSL close notify messages to MSIE clients.
+ This can be done by using the following directive in your SSL-aware
virtual host section:
SetEnvIf User-Agent "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
- Further, some MSIE versions have problems with particular ciphers.
- Unfortunately, it is not possible to implement a MSIE-specific
- workaround for this, because the ciphers are needed as early as the
- SSL handshake phase. So a MSIE-specific
- SetEnvIf won't solve these
+
Further, some MSIE versions have problems with particular ciphers.
+ Unfortunately, it is not possible to implement a MSIE-specific
+ workaround for this, because the ciphers are needed as early as the
+ SSL handshake phase. So a MSIE-specific
+ SetEnvIf won't solve these
problems. Instead, you will have to make more drastic
adjustments to the global parameters. Before you decide to do
- this, make sure your clients really have problems. If not, do not
+ this, make sure your clients really have problems. If not, do not
make these changes - they will affect all your clients, MSIE
or otherwise.
@@ -708,11 +708,11 @@ Explorer (MSIE)?
mod_ssl Support
-- What information resources are available in
+
- What information resources are available in
case of mod_ssl problems?
-- What support contacts are available in case of
+
- What support contacts are available in case of
mod_ssl problems?
-- What information should I
+
- What information should I
provide when writing a bug report?
- I had a core dump, can you help me?
- How do I get a backtrace, to help find the reason
@@ -734,10 +734,10 @@ for my core dump?
-What support contacts are available in case
+What support contacts are available in case
of mod_ssl problems?
The following lists all support possibilities for mod_ssl, in order of
- preference. Please go through these possibilities
+ preference. Please go through these possibilities
in this order - don't just pick the one you like the look of.
@@ -775,22 +775,22 @@ provide when writing a bug report?
- The details on how you built and installed Apache httpd and OpenSSL
- For this you can provide a logfile of your terminal session which shows
- the configuration and install steps. If this is not possible, you
+ the configuration and install steps. If this is not possible, you
should at least provide the
configure command line you used.
- In case of core dumps please include a Backtrace
- If your Apache httpd dumps its core, please attach
- a stack-frame ``backtrace'' (see below
+ a stack-frame ``backtrace'' (see below
for information on how to get this). This information is required
in order to find a reason for your core dump.
-
+
- A detailed description of your problem
- - Don't laugh, we really mean it! Many problem reports don't
+
- Don't laugh, we really mean it! Many problem reports don't
include a description of what the actual problem is. Without this,
- it's very difficult for anyone to help you. So, it's in your own
- interest (you want the problem be solved, don't you?) to include as
+ it's very difficult for anyone to help you. So, it's in your own
+ interest (you want the problem be solved, don't you?) to include as
much detail as possible, please. Of course, you should still include
all the essentials above too.
@@ -805,7 +805,7 @@ provide when writing a bug report?
fixing it.
-How do I get a backtrace, to help find
+How do I get a backtrace, to help find
the reason for my core dump?
Following are the steps you will need to complete, to get a backtrace:
@@ -819,7 +819,7 @@ the reason for my core dump?
want to use a directive like ``CoreDumpDirectory /tmp'' to
make sure that the core-dump file can be written. This should result
in a /tmp/core or /tmp/httpd.core file. If you
- don't get one of these, try running your server under a non-root UID.
+ don't get one of these, try running your server under a non-root UID.
Many modern kernels do not allow a process to dump core after it has
done a setuid() (unless it does an exec()) for
security reasons (there can be privileged information left over in
@@ -828,9 +828,9 @@ the reason for my core dump?
- Analyze the core-dump. For this, run
gdb /path/to/httpd
- /tmp/httpd.core or a similar command. In GDB, all you
+ /tmp/httpd.core or a similar command. In GDB, all you
have to do then is to enter bt, and voila, you get the
- backtrace. For other debuggers consult your local debugger manual.
+ backtrace. For other debuggers consult your local debugger manual.
diff --git a/docs/manual/ssl/ssl_howto.xml b/docs/manual/ssl/ssl_howto.xml
index 9c787f87a01..6ac014641c5 100644
--- a/docs/manual/ssl/ssl_howto.xml
+++ b/docs/manual/ssl/ssl_howto.xml
@@ -57,7 +57,7 @@ following directives.
Cipher Suites and Enforcing Strong Security
- How can I create an SSL server which accepts strong encryption only?
-- How can I create an SSL server which accepts all types of ciphers in general, but
+
- How can I create an SSL server which accepts all types of ciphers in general, but
requires a strong cipher for access to a particular URL?
@@ -88,8 +88,8 @@ only?
in general, but requires a strong ciphers for access to a particular
URL?
Obviously, a server-wide SSLCipherSuite which restricts
- ciphers to the strong variants, isn't the answer here. However,
+ module="mod_ssl">SSLCipherSuite which restricts
+ ciphers to the strong variants, isn't the answer here. However,
mod_ssl can be reconfigured within Location
blocks, to give a per-directory solution, and can automatically force
a renegotiation of the SSL parameters to meet the new configuration.
@@ -112,7 +112,7 @@ URL?
Client Authentication and Access Control
- How can I force clients to authenticate using certificates?
-- How can I force clients to authenticate using certificates for a
+
- How can I force clients to authenticate using certificates for a
particular URL, but still allow arbitrary clients to access the rest of the server?
- How can I allow only clients who have certificates to access a
particular URL, but allow all clients to access the rest of the server?
@@ -165,14 +165,14 @@ Intranet website, for clients coming from the Internet?
matches what you expect. Usually this means checking all or part of the
Distinguished Name (DN), to see if it contains some known string.
There are two ways to do this, using either mod_auth_basic or
- SSLRequire .
-
+ SSLRequire .
+
The mod_auth_basic method is generally required when
the certificates are completely arbitrary, or when their DNs have
no common fields (usually the organisation, etc.). In this case,
you should establish a password database containing all
clients allowed, as follows:
-
+
httpd.conf
SSLVerifyClient none
<Directory /usr/local/apache2/htdocs/secure/area>
@@ -190,11 +190,11 @@ AuthUserFile /usr/local/apache2/conf/httpd.passwd
Require valid-user
</Directory>
-
+
The password used in this example is the DES encrypted string "password".
- See the SSLOptions docs for more
+ See the SSLOptions docs for more
information.
-
+
httpd.passwd
/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA
/C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA
@@ -227,10 +227,10 @@ SSLVerifyClient none
authentication or client certificates, for access to part of the
Intranet website, for clients coming from the Internet? I still want to allow
plain HTTP access for clients on the Intranet.
-
- These examples presume that clients on the Intranet have IPs in the range
+
+
These examples presume that clients on the Intranet have IPs in the range
192.168.1.0/24, and that the part of the Intranet website you want to allow
- internet access to is /usr/local/apache2/htdocs/subarea.
+ internet access to is /usr/local/apache2/htdocs/subarea.
This configuration should remain outside of your HTTPS virtual host, so
that it applies to both HTTPS and HTTP.
diff --git a/docs/manual/ssl/ssl_intro.xml b/docs/manual/ssl/ssl_intro.xml
index 56a034c319a..9e779cf1eb1 100644
--- a/docs/manual/ssl/ssl_intro.xml
+++ b/docs/manual/ssl/ssl_intro.xml
@@ -41,7 +41,7 @@ intended to be a definitive guide to the SSL protocol, nor does it discuss
specific techniques for managing certificates in an organization, or the
important legal issues of patents and import and export restrictions.
Rather, it is intended to provide a common background to mod_ssl users by pulling together various concepts, definitions,
+>mod_ssl users by pulling together various concepts, definitions,
and examples as a starting point for further exploration.
The presented content is mainly derived, with the author's permission,
@@ -75,7 +75,7 @@ integrity, and authentication.
solution is to use a cryptographic algorithm, a technique that would
transform her message into an encrypted form, unreadable until it is
decrypted. Once in this form, the message can only be
- decrypted by using a secret key. Without the key the message is useless:
+ decrypted by using a secret key. Without the key the message is useless:
good cryptographic algorithms make it so difficult
for intruders to decode the original text that it isn't worth their
effort.
@@ -87,11 +87,11 @@ integrity, and authentication.
- Conventional cryptography
- also known as symmetric cryptography, requires the sender and
receiver to share a key: a secret piece of information that may be
- used to encrypt or decrypt a message. As long as this key is kept
- secret, nobody other than the sender or recipient can read the message.
+ used to encrypt or decrypt a message. As long as this key is kept
+ secret, nobody other than the sender or recipient can read the message.
If Alice and the bank know a secret key, then they can send each other
private messages. The task of sharing a key between sender and recipient
- before communicating, while also keeping it secret from others, can be
+ before communicating, while also keeping it secret from others, can be
problematic.
- Public key cryptography
@@ -116,9 +116,9 @@ integrity, and authentication.
is still a concern that someone might modify her original message or
substitute it with a different one, in order to transfer the money
to themselves, for instance. One way of guaranteeing the integrity
- of Alice's message is for her to create a concise summary of her
- message and send this to the bank as well. Upon receipt of the message,
- the bank creates its own summary and compares it with the one Alice
+ of Alice's message is for her to create a concise summary of her
+ message and send this to the bank as well. Upon receipt of the message,
+ the bank creates its own summary and compares it with the one Alice
sent. If the summaries are the same then the message has been received
intact.
@@ -126,10 +126,10 @@ integrity, and authentication.
function or hash function. Message digests are used to create
a short, fixed-length representation of a longer, variable-length message.
Digest algorithms are designed to produce a unique digest for each
- message. Message digests are designed to make it impractically difficult
- to determine the message from the digest and (in theory) impossible to
- find two different messages which create the same digest -- thus
- eliminating the possibility of substituting one message for another while
+ message. Message digests are designed to make it impractically difficult
+ to determine the message from the digest and (in theory) impossible to
+ find two different messages which create the same digest -- thus
+ eliminating the possibility of substituting one message for another while
maintaining the same digest.
Another challenge that Alice faces is finding a way to send the digest
@@ -137,8 +137,8 @@ integrity, and authentication.
be compromised and with it the possibility for the bank to determine the
integrity of the original message. Only if the digest is sent securely can
the integrity of the associated message be determined.
-
- One way to send the digest securely is to include it in a digital
+
+
One way to send the digest securely is to include it in a digital
signature.
@@ -168,7 +168,7 @@ the bank from a fraudulent claim from Alice that she did not send the message
Although Alice could have sent a private message to the bank, signed
it and ensured the integrity of the message, she still needs to be sure
that she is really communicating with the bank. This means that she needs
-to be sure that the public key she is using is part of the bank's key-pair,
+to be sure that the public key she is using is part of the bank's key-pair,
and not an intruder's. Similarly, the bank needs to verify that the message
signature really was signed by the private key that belongs to Alice.
@@ -257,7 +257,7 @@ certificates are used for authentication.
distinguished field names are optional and which are required. It
may also place requirements upon the field contents, as may users of
certificates. For example, a Netscape browser requires that the
- Common Name for a certificate representing a server matches a wildcard
+ Common Name for a certificate representing a server matches a wildcard
pattern for the domain name of that server, such
as *.snakeoil.com.
@@ -300,9 +300,9 @@ dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==
Certificate Authorities
By verifying the information in a certificate request
before granting the certificate, the Certificate Authority assures
- itself of the identity of the private key owner of a key-pair.
- For instance, if Alice requests a personal certificate, the
- Certificate Authority must first make sure that Alice really is the
+ itself of the identity of the private key owner of a key-pair.
+ For instance, if Alice requests a personal certificate, the
+ Certificate Authority must first make sure that Alice really is the
person the certificate request claims she is.
@@ -356,17 +356,17 @@ dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==
they also manage them -- that is, they determine for how long
certificates remain valid, they renew them and keep lists of
certificates that were issued in the past but are no longer valid
- (Certificate Revocation Lists, or CRLs).
+ (Certificate Revocation Lists, or CRLs).
- For example, if Alice is entitled to a certificate as an
+
For example, if Alice is entitled to a certificate as an
employee of a company but has now left
that company, her certificate may need to be revoked.
Because certificates are only issued after the subject's identity has
- been verified and can then be passed around to all those with whom
- the subject may communicate, it is impossible to tell from the
- certificate alone that it has been revoked.
- Therefore when examining certificates for validity
- it is necessary to contact the issuing Certificate Authority to
+ been verified and can then be passed around to all those with whom
+ the subject may communicate, it is impossible to tell from the
+ certificate alone that it has been revoked.
+ Therefore when examining certificates for validity
+ it is necessary to contact the issuing Certificate Authority to
check CRLs -- this is usually not an automated part of the process.
Note
@@ -433,14 +433,14 @@ establishing a protocol session.
There are a number of versions of the SSL protocol, as shown in +
There are a number of versions of the SSL protocol, as shown in Table 4. As noted there, one of the benefits in SSL 3.0 is that it adds support of certificate chain loading. This feature allows a server to pass a server certificate along with issuer certificates to the browser. Chain loading also permits the browser to validate the server certificate, even if Certificate Authority certificates are not installed for the intermediate issuers, since they are included in the -certificate chain. SSL 3.0 is the basis for the Transport Layer Security +certificate chain. SSL 3.0 is the basis for the Transport Layer Security [TLS] protocol standard, currently in development by the Internet Engineering Task Force (IETF).
@@ -506,14 +506,14 @@ the Internet Engineering Task Force (IETF).One variable in the choice of key exchange methods is digital signatures -- whether or not to use them, and if so, what kind of - signatures to use. Signing with a private key provides protection + signatures to use. Signing with a private key provides protection against a man-in-the-middle-attack during the information exchange used to generating the shared key [AC96, p516].
SSL uses conventional symmetric cryptography, as described earlier, +
SSL uses conventional symmetric cryptography, as described earlier, for encrypting messages in a session. There are nine choices of how to encrypt, including the option not to encrypt:
@@ -539,8 +539,8 @@ the Internet Engineering Task Force (IETF). portion of the previously encrypted cipher text is used in the encryption of the current block. "DES" refers to the Data Encryption Standard [AC96, ch12], which has a number of - variants (including DES40 and 3DES_EDE). "Idea" is currently one of - the best and cryptographically strongest algorithms available, + variants (including DES40 and 3DES_EDE). "Idea" is currently one of + the best and cryptographically strongest algorithms available, and "RC2" is a proprietary algorithm from RSA DSI [AC96, ch13].The encapsulation of SSL control protocols by the record protocol means that if an active session is renegotiated the control protocols - will be transmitted securely. If there was no previous session, + will be transmitted securely. If there was no previous session, the Null cipher suite is used, which means there will be no encryption and messages will have no integrity digests, until the session has been established.
@@ -617,8 +617,8 @@ the Internet Engineering Task Force (IETF).One common use of SSL is to secure Web HTTP communication between
a browser and a webserver. This does not preclude the use of
- non-secured HTTP - the secure version (called HTTPS) is the same as
- plain HTTP over SSL, but uses the URL scheme https
+ non-secured HTTP - the secure version (called HTTPS) is the same as
+ plain HTTP over SSL, but uses the URL scheme https
rather than http, and a different server port (by default,
port 443). This functionality is a large part of what
Public Key Cryptography Standards (PKCS), +
Public Key Cryptography Standards (PKCS), RSA Laboratories Technical Notes, See http://www.rsasecurity.com/rsalabs/pkcs/.
Users of
This still will not @@ -192,35 +192,35 @@ syntax error(s).
The WINCH or graceful-stop signal causes
the parent process to advise the children to exit after
their current request (or to exit immediately if they're not
- serving anything). The parent will then remove its TERM signal
to force them to exit.
A TERM signal will immediately terminate the
+
+
A TERM signal will immediately terminate the
parent process and all children when in the "graceful" state. However
as the apachectl or httpd to send this signal.
The graceful-stop signal allows you to run multiple
- identically configured instances of
Care has been taken to ensure that on-disk files such as lock files
(
You should also be wary of other potential race conditions, such as
using build/config.nice in the installed server
directory) can be used in most cases. There are some changes in
the default settings. Some details of changes:
The address can be specified as
*, which will match a request if no
other vhost has the explicit address on which the request was
- received.
The address appearing in the VirtualHost
directive can have an optional port. If the port is unspecified,
@@ -83,9 +83,9 @@
Use the
Collectively the - entire set of addresses (including multiple + entire set of addresses (including multiple results from DNS lookups) are called the vhost's address set.
@@ -94,7 +94,7 @@ whenever the most specific match for an IP address and port combination is listed in multiple virtual hosts. -The +
The
If there are multiple VirtualHost directives listing
the IP address and port combination that was determined to be the
- best match, the "list" in the remaining steps refers to the list of vhosts
+ best match, the "list" in the remaining steps refers to the list of vhosts
that matched, in the order they were in the configuration file.
If the connection is using SSL, the server supports * vhost). In other words, the main server
only catches a request for an unspecified address/port
diff --git a/docs/manual/vhosts/fd-limits.xml b/docs/manual/vhosts/fd-limits.xml
index a0f2f341b99..2c08d079563 100644
--- a/docs/manual/vhosts/fd-limits.xml
+++ b/docs/manual/vhosts/fd-limits.xml
@@ -48,7 +48,7 @@
In the terminology of Apache HTTP Server, using a single IP address +
In the terminology of Apache HTTP Server, using a single IP address but multiple TCP ports, is also IP-based virtual hosting.
@@ -157,7 +157,7 @@ Virtual Hosts to help you decide.Specific IP addresses or ports have precedence over their wildcard equivalents, and any virtual host that matches has precedence over - the servers base configuration.
+ the servers base configuration.Almost any configuration directive can be put in the VirtualHost directive, with the exception of diff --git a/docs/manual/vhosts/mass.xml b/docs/manual/vhosts/mass.xml index dec084a6733..3df4e2531c3 100644 --- a/docs/manual/vhosts/mass.xml +++ b/docs/manual/vhosts/mass.xml @@ -82,7 +82,7 @@
The main disadvantage is that you cannot have a different log file for
each virtual host; however, if you have many virtual hosts, doing
this can be a bad idea anyway, because of the number of file descriptors needed.
+ href="fd-limits.html">number of file descriptors needed.
It is better to log to a pipe or a fifo,
and arrange for the process at the other end to split up the log
files into one per virtual host. One example of such a process can
@@ -99,9 +99,9 @@
in the HTTP request. The dynamic mass virtual hosting technique
used here is based on automatically inserting this information into the
pathname of the file that is used to satisfy the request. This
- can be most easily done by using
Both of these modules are disabled by default; you must enable
one of them when configuring and building Apache httpd if you want to
@@ -263,7 +263,7 @@ LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
If the first VirtualHost block does not include a
ServerName
none.example.com) can be added to get around this
diff --git a/docs/manual/vhosts/name-based.xml b/docs/manual/vhosts/name-based.xml
index 2c6fe4451f7..da8598e2481 100644
--- a/docs/manual/vhosts/name-based.xml
+++ b/docs/manual/vhosts/name-based.xml
@@ -39,8 +39,8 @@
determine the correct virtual host to serve. Therefore you need to
have a separate IP address for each host.
With name-based virtual hosting, the server relies on the client to - report the hostname as part of the HTTP headers. Using this technique, +
With name-based virtual hosting, the server relies on the client to + report the hostname as part of the HTTP headers. Using this technique, many different hosts can share the same IP address.
Name-based virtual hosting is usually simpler, since you need @@ -67,19 +67,19 @@ after narrowing down the candidates to the best IP-based match. Using a wildcard (*) for the IP address in all of the VirtualHost directives makes this IP-based mapping irrelevant.
- -When a request arrives, the server will find the best (most specific) matching + +
When a request arrives, the server will find the best (most specific) matching
If no matching ServerName or ServerAlias is found in the set of - virtual hosts containing the most specific matching IP address and port - combination, then the first listed virtual host that +
If no matching ServerName or ServerAlias is found in the set of + virtual hosts containing the most specific matching IP address and port + combination, then the first listed virtual host that matches that will be used.
When you add a name-based virtual host to an existing server, and - the virtual host arguments match preexisting IP and port combinations, +
When you add a name-based virtual host to an existing server, and
+ the virtual host arguments match preexisting IP and port combinations,
requests will now be handled by an explicit virtual host. In this case,
it's usually wise to create a default virtual host
- with a