From: Daniel Gruno mod_proxy and mod_proxy_fcgi.
+
ProxyPass /myapp/ fcgi://localhost:4000/
+
+
This application should be able to handle multiple concurrent @@ -87,7 +90,10 @@ the following example:
+
ProxyPass /myapp/ fcgi://localhost:4000/ disablereuse=on
+
+
The balanced gateway needs mod_proxy_balancer and
@@ -97,13 +103,14 @@
default, and will be used for this example configuration.
- ProxyPass /myapp/ balancer://myappcluster/
- <Proxy balancer://myappcluster/>
-
- BalancerMember fcgi://localhost:4000/
- BalancerMember fcgi://localhost:4001/
-
- </Proxy>
+
+ProxyPass /myapp/ balancer://myappcluster/
+<Proxy balancer://myappcluster/>
+ BalancerMember fcgi://localhost:4000/
+ BalancerMember fcgi://localhost:4001/
+</Proxy>
+
+
mod_proxy and mod_proxy_scgi.
+
ProxyPass /scgi-bin/ scgi://localhost:4000/
+
+
The balanced gateway needs mod_proxy_balancer and
@@ -78,13 +81,14 @@
default, and will be used for this example configuration.
- ProxyPass /scgi-bin/ balancer://somecluster/
- <Proxy balancer://somecluster/>
-
- BalancerMember scgi://localhost:4000/
- BalancerMember scgi://localhost:4001/
-
- </Proxy>
+
+ProxyPass /scgi-bin/ balancer://somecluster/
+<Proxy balancer://somecluster/>
+ BalancerMember scgi://localhost:4000/
+ BalancerMember scgi://localhost:4001/
+</Proxy>
+
+
+
ProxySCGIInternalRedirect Off
+
+
- # Use the default header (X-Sendfile)
- ProxySCGISendfile On
-
- # Use a different header
+
+ # Use the default header (X-Sendfile)
+ ProxySCGISendfile On
+
+ # Use a different header
ProxySCGISendfile X-Send-Static
+
+
rate-limit.
-<Location /downloads>
-
-SetOutputFilter RATE_LIMIT
-SetEnv rate-limit 400
-
+
+<Location /downloads>
+ SetOutputFilter RATE_LIMIT
+ SetEnv rate-limit 400
</Location>
+
+
- <Location /compress>
- SetHandler reflector
- SetOutputFilter DEFLATE
- </Location>
-
+<Location /compress> + SetHandler reflector + SetOutputFilter DEFLATE +</Location> ++
- <Location /downsample>
- SetHandler reflector
- SetOutputFilter DOWNSAMPLE
- </Location>
-
+<Location /downsample> + SetHandler reflector + SetOutputFilter DOWNSAMPLE +</Location> ++
+
RequestReadTimeout header=10 body=30
-
LimitRequestBody):
-
+
RequestReadTimeout body=10,MinRate=1000
-
+
RequestReadTimeout header=10-30,MinRate=500
-
+
RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
-
session.
- Session On
- SessionCookieName session path=/
+
+Session On
+SessionCookieName session path=/
+
+
The session is not useful unless it can be written to or read from. The
@@ -170,9 +173,12 @@
X-Replace-Session.
- Session On
- SessionCookieName session path=/
- SessionHeader X-Replace-Session
+
+Session On
+SessionCookieName session path=/
+SessionHeader X-Replace-Session
+
+
The header should contain name value pairs expressed in the same format @@ -180,11 +186,14 @@ empty string has the effect of removing that key from the session.
- #!/bin/bash
- echo "Content-Type: text/plain"
- echo "X-Replace-Session: key1=foo&key2=&key3=bar"
- echo
- env
+
+#!/bin/bash
+echo "Content-Type: text/plain"
+echo "X-Replace-Session: key1=foo&key2=&key3=bar"
+echo
+env
+
+
If configured, the session can be read back from the HTTP_SESSION
@@ -193,10 +202,13 @@
SessionEnv directive.
- Session On
- SessionEnv On
- SessionCookieName session path=/
- SessionHeader X-Replace-Session
+
+Session On
+SessionEnv On
+SessionCookieName session path=/
+SessionHeader X-Replace-Session
+
+
Once read, the CGI variable HTTP_SESSION should contain
@@ -217,9 +229,12 @@
module.
- Session On
- SessionCryptoPassphrase secret
- SessionCookieName session path=/
+
+Session On
+SessionCryptoPassphrase secret
+SessionCookieName session path=/
+
+
The session will be automatically decrypted on load, and encrypted on @@ -254,9 +269,12 @@ as in the example below.
- Session On
- SessionCryptoPassphrase secret
- SessionCookieName session path=/private;domain=example.com;httponly;secure;
+
+Session On
+SessionCryptoPassphrase secret
+SessionCookieName session path=/private;domain=example.com;httponly;secure;
+
+
In cases where the Apache server forms the frontend for backend origin servers, @@ -276,14 +294,17 @@ the session.
- Session On
- SessionCryptoPassphrase secret
- SessionCookieName session path=/
- AuthFormProvider file
- AuthUserFile conf/passwd
- AuthType form
- AuthName realm
- ...
+
+Session On
+SessionCryptoPassphrase secret
+SessionCookieName session path=/
+AuthFormProvider file
+AuthUserFile conf/passwd
+AuthType form
+AuthName realm
+#...
+
+
See the mod_auth_form module for documentation and complete
diff --git a/docs/manual/mod/mod_ssl.html.en b/docs/manual/mod/mod_ssl.html.en
index 01145802766..ff8d0199073 100644
--- a/docs/manual/mod/mod_ssl.html.en
+++ b/docs/manual/mod/mod_ssl.html.en
@@ -240,7 +240,7 @@ For backward compatibility there is additionally a special
``%{name}c'' cryptography format function
provided. Information about this function is provided in the Compatibility chapter.
If either the pattern or the substitution contain a slash
character then an alternative delimiter should be used: Backreferences can be used in the comparison and in the substitution,
when regular expressions are used, as illustrated in the following example: A common use scenario for
-
+
CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
diff --git a/docs/manual/mod/mod_substitute.html.en b/docs/manual/mod/mod_substitute.html.en
index 7e1e70a148e..0e339590e32 100644
--- a/docs/manual/mod/mod_substitute.html.en
+++ b/docs/manual/mod/mod_substitute.html.en
@@ -80,36 +80,39 @@
Example
- <Location />
-
- AddOutputFilterByType SUBSTITUTE text/html
- Substitute s/foo/bar/ni
-
- </Location>
+
+<Location />
+ AddOutputFilterByType SUBSTITUTE text/html
+ Substitute s/foo/bar/ni
+</Location>
+
+
Example of using an alternate delimiter
- <Location />
-
- AddOutputFilterByType SUBSTITUTE text/html
- Substitute "s|<BR */?>|<br />|i"
-
- </Location>
+
+<Location />
+ AddOutputFilterByType SUBSTITUTE text/html
+ Substitute "s|<BR */?>|<br />|i"
+</Location>
+
+
Example of using backreferences and captures
- <Location />
-
- AddOutputFilterByType SUBSTITUTE text/html
- # "foo=k,bar=k" -> "foo/bar=k"
- Substitute "s|foo=(\w+),bar=\1|foo/bar=$1"
-
- </Location>
+
+<Location />
+ AddOutputFilterByType SUBSTITUTE text/html
+ # "foo=k,bar=k" -> "foo/bar=k"
+ Substitute "s|foo=(\w+),bar=\1|foo/bar=$1"
+</Location>
+
+
mod_substitute is the
@@ -122,10 +125,13 @@
those URLs into something that will work from the front end:Rewriting URLs embedded in proxied content
- ProxyPass /blog/ http://internal.blog.example.com
- ProxyPassReverse /blog/ http://internal.blog.example.com/
-
- Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i"
+
+ProxyPass /blog/ http://internal.blog.example.com
+ProxyPassReverse /blog/ http://internal.blog.example.com/
+
+Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i"
+
+
ProxyPassReverse
diff --git a/docs/manual/mod/mod_usertrack.html.en b/docs/manual/mod/mod_usertrack.html.en
index 0df2836e17d..d09f475ee9d 100644
--- a/docs/manual/mod/mod_usertrack.html.en
+++ b/docs/manual/mod/mod_usertrack.html.en
@@ -57,10 +57,11 @@
mod_usertrack sets a cookie which can be logged
via mod_log_config configurable logging formats:
- LogFormat "%{Apache}n %r %t" usertrack
- CustomLog logs/clickstream.log usertrack
-
+LogFormat "%{Apache}n %r %t" usertrack
+CustomLog logs/clickstream.log usertrack
+
+
.example.co.uk).
-
+
CookieDomain .example.com
-
If this directive is not used, cookies last only for the current browser session.
-
+
CookieExpires "3 weeks"
-
+
CookieName clicktrack
-
Cookie2 being the
preferred format.
-
+
CookieStyle Cookie2
-
mod_usertrack will not
activate cookies.
-
+
CookieTracking on
-
/usr/local/apache2/cgi-bin/script.pl in all cases:
-
- ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
- VirtualScriptAlias /never/found/%0/cgi-bin/
-
+ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/ +VirtualScriptAlias /never/found/%0/cgi-bin/ ++
For simple name-based virtual hosts you might use the following directives in your server configuration file:
-
- UseCanonicalName Off
- VirtualDocumentRoot /usr/local/apache/vhosts/%0
-
+UseCanonicalName Off +VirtualDocumentRoot /usr/local/apache/vhosts/%0 ++
A request for
http://www.example.com/directory/file.html will be
@@ -159,10 +161,11 @@ hosting
vhosts directory. To do this you might use the
following in your configuration file:
- UseCanonicalName Off
- VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2
-
+UseCanonicalName Off +VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2 ++
A request for
http://www.domain.example.com/directory/file.html
@@ -172,18 +175,20 @@ hosting
A more even spread of files can be achieved by hashing from the end of the name, for example:
-
+
VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2
-
The example request would come from
/usr/local/apache/vhosts/example.com/n/i/a/domain/directory/file.html.
Alternatively you might use:
-
+
VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+
-
The example request would come from
/usr/local/apache/vhosts/example.com/d/o/m/ain/directory/file.html.
For IP-based virtual hosting you might use the following in your configuration file:
-
- UseCanonicalName DNS
- VirtualDocumentRootIP /usr/local/apache/vhosts/%1/%2/%3/%4/docs
- VirtualScriptAliasIP /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin
-
+UseCanonicalName DNS +VirtualDocumentRootIP /usr/local/apache/vhosts/%1/%2/%3/%4/docs +VirtualScriptAliasIP /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin ++
A request for
http://www.domain.example.com/directory/file.html
@@ -212,9 +218,10 @@ hosting
a % directive, you can work around the problem in
the following way:
+
VirtualDocumentRoot /usr/local/apache/vhosts/%2.0.%3.0
-
A request for
http://www.domain.example.com/directory/file.html
diff --git a/docs/manual/mod/mod_xml2enc.html.en b/docs/manual/mod/mod_xml2enc.html.en
index 8ba9cbd72ae..872e1394f69 100644
--- a/docs/manual/mod/mod_xml2enc.html.en
+++ b/docs/manual/mod/mod_xml2enc.html.en
@@ -165,7 +165,8 @@ module for earlier versions.
information, you can set this default to help mod_xml2enc process
the data correctly. For example, to work with the default value
of Latin1 (iso-8859-1 specified in HTTP/1.0, use
xml2EncDefault iso-8859-1
xml2EncDefault iso-8859-1+