summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Ylavic <ylavic@apache.org>2018-02-20 12:43:16 +0000
committerYann Ylavic <ylavic@apache.org>2018-02-20 12:43:16 +0000
commit829144ed4638a23f0d40576c71cd988df8eef61f (patch)
treed12633d013c5fe891cae0692d6c7d51957d371fd
parent48a8c0a962a64d6283e8163d0d72323f405d6d51 (diff)
parent8382b67c14dc1fd18149a25ff83e0bbac2e5f3c6 (diff)
downloadhttpd-829144ed4638a23f0d40576c71cd988df8eef61f.tar.gz
Follow up to r1821624: sync with latest 2.4.x.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x-mpm_fdqueue@1824864 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--Apache-apr2.dsw24
-rw-r--r--Apache.dsw27
-rw-r--r--CHANGES4
-rw-r--r--Makefile.win2
-rw-r--r--STATUS75
-rw-r--r--build/installwinconf.awk1
-rw-r--r--docs/manual/convenience.map20
-rw-r--r--docs/manual/install.xml51
-rw-r--r--docs/manual/mod/allmodules.xml1
-rw-r--r--docs/manual/mod/allmodules.xml.de1
-rw-r--r--docs/manual/mod/allmodules.xml.es1
-rw-r--r--docs/manual/mod/allmodules.xml.fr1
-rw-r--r--docs/manual/mod/allmodules.xml.ja1
-rw-r--r--docs/manual/mod/allmodules.xml.ko1
-rw-r--r--docs/manual/mod/allmodules.xml.tr1
-rw-r--r--docs/manual/mod/allmodules.xml.zh-cn1
-rw-r--r--docs/manual/mod/directives.html.de2
-rw-r--r--docs/manual/mod/directives.html.en2
-rw-r--r--docs/manual/mod/directives.html.es2
-rw-r--r--docs/manual/mod/directives.html.fr2
-rw-r--r--docs/manual/mod/directives.html.ja.utf82
-rw-r--r--docs/manual/mod/directives.html.ko.euc-kr2
-rw-r--r--docs/manual/mod/directives.html.tr.utf82
-rw-r--r--docs/manual/mod/directives.html.zh-cn.utf82
-rw-r--r--docs/manual/mod/index.html.de1
-rw-r--r--docs/manual/mod/index.html.en1
-rw-r--r--docs/manual/mod/index.html.es1
-rw-r--r--docs/manual/mod/index.html.fr1
-rw-r--r--docs/manual/mod/index.html.ja.utf81
-rw-r--r--docs/manual/mod/index.html.ko.euc-kr1
-rw-r--r--docs/manual/mod/index.html.tr.utf81
-rw-r--r--docs/manual/mod/index.html.zh-cn.utf81
-rw-r--r--docs/manual/mod/mod_authnz_ldap.html.fr4
-rw-r--r--docs/manual/mod/mod_authnz_ldap.xml.fr4
-rw-r--r--docs/manual/mod/mod_authnz_ldap.xml.meta2
-rw-r--r--docs/manual/mod/mod_proxy_fcgi.html.fr13
-rw-r--r--docs/manual/mod/mod_proxy_fcgi.xml.fr13
-rw-r--r--docs/manual/mod/mod_proxy_fcgi.xml.meta2
-rw-r--r--docs/manual/mod/mod_remoteip.html.en80
-rw-r--r--docs/manual/mod/mod_remoteip.html.fr94
-rw-r--r--docs/manual/mod/mod_remoteip.xml.fr101
-rw-r--r--docs/manual/mod/mod_ssl.html.en47
-rw-r--r--docs/manual/mod/mod_ssl.html.fr48
-rw-r--r--docs/manual/mod/mod_ssl.xml.fr81
-rw-r--r--docs/manual/mod/overrides.html.en75
-rw-r--r--docs/manual/mod/quickreference.html.de11
-rw-r--r--docs/manual/mod/quickreference.html.en35
-rw-r--r--docs/manual/mod/quickreference.html.es11
-rw-r--r--docs/manual/mod/quickreference.html.fr12
-rw-r--r--docs/manual/mod/quickreference.html.ja.utf811
-rw-r--r--docs/manual/mod/quickreference.html.ko.euc-kr11
-rw-r--r--docs/manual/mod/quickreference.html.tr.utf811
-rw-r--r--docs/manual/mod/quickreference.html.zh-cn.utf811
-rw-r--r--docs/manual/sections.html.tr.utf81
-rw-r--r--docs/manual/sitemap.html.de1
-rw-r--r--docs/manual/sitemap.html.en1
-rw-r--r--docs/manual/sitemap.html.es1
-rw-r--r--docs/manual/sitemap.html.fr1
-rw-r--r--docs/manual/sitemap.html.ja.utf81
-rw-r--r--docs/manual/sitemap.html.tr.utf81
-rw-r--r--docs/manual/sitemap.html.zh-cn.utf81
-rw-r--r--docs/manual/style/version.ent2
-rw-r--r--include/ap_mmn.h7
-rw-r--r--include/ap_release.h2
-rw-r--r--modules/metadata/mod_remoteip.dsp8
-rw-r--r--modules/metadata/mod_remoteip.mak4
-rw-r--r--modules/proxy/balancers/mod_lbmethod_heartbeat.c2
-rw-r--r--modules/proxy/mod_proxy.c8
-rw-r--r--modules/proxy/mod_proxy.h5
-rw-r--r--modules/proxy/mod_proxy_ajp.c12
-rw-r--r--modules/proxy/mod_proxy_balancer.c4
-rw-r--r--modules/proxy/mod_proxy_hcheck.c17
-rw-r--r--modules/proxy/mod_proxy_http.c2
-rw-r--r--modules/proxy/mod_proxy_uwsgi.dep75
-rw-r--r--modules/proxy/mod_proxy_uwsgi.mak380
-rw-r--r--modules/proxy/proxy_util.c44
-rw-r--r--os/win32/BaseAddr.ref1
77 files changed, 1214 insertions, 280 deletions
diff --git a/Apache-apr2.dsw b/Apache-apr2.dsw
index 191363158c..fe2f526358 100644
--- a/Apache-apr2.dsw
+++ b/Apache-apr2.dsw
@@ -291,6 +291,9 @@ Package=<4>
Project_Dep_Name mod_proxy_scgi
End Project Dependency
Begin Project Dependency
+ Project_Dep_Name mod_proxy_uwsgi
+ End Project Dependency
+ Begin Project Dependency
Project_Dep_Name mod_proxy_wstunnel
End Project Dependency
Begin Project Dependency
@@ -2323,7 +2326,6 @@ Package=<4>
}}}
###############################################################################
-###############################################################################
Project: "mod_proxy_html"=.\modules\filters\mod_proxy_html.dsp - Package Owner=<4>
@@ -2407,6 +2409,26 @@ Package=<4>
End Project Dependency
}}}
+###############################################################################
+
+Project: "mod_proxy_uwsgi"=.\modules\proxy\mod_proxy_uwsgi.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libapr
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libhttpd
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name mod_proxy
+ End Project Dependency
+}}}
###############################################################################
diff --git a/Apache.dsw b/Apache.dsw
index 2a08ecdf45..a0be3aecd7 100644
--- a/Apache.dsw
+++ b/Apache.dsw
@@ -306,6 +306,9 @@ Package=<4>
Project_Dep_Name mod_proxy_scgi
End Project Dependency
Begin Project Dependency
+ Project_Dep_Name mod_proxy_uwsgi
+ End Project Dependency
+ Begin Project Dependency
Project_Dep_Name mod_proxy_wstunnel
End Project Dependency
Begin Project Dependency
@@ -2855,6 +2858,30 @@ Package=<4>
###############################################################################
+Project: "mod_proxy_uwsgi"=.\modules\proxy\mod_proxy_uwsgi.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libapr
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libaprutil
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name libhttpd
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name mod_proxy
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "mod_proxy_wstunnel"=.\modules\proxy\mod_proxy_wstunnel.dsp - Package Owner=<4>
Package=<5>
diff --git a/CHANGES b/CHANGES
index 52abf87f27..c551cd4d50 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,9 +1,11 @@
-*- coding: utf-8 -*-
-Changes with Apache 2.4.30
+Changes with Apache 2.4.31
*) mpm_queue: Put fdqueue code in common for MPMs event and worker.
[Yann Ylavic]
+Changes with Apache 2.4.30
+
*) mod_session: Strip Session header when SessionEnv is on. [Yann Ylavic]
*) mod_cache_socache: Fix caching of empty headers up to carriage return.
diff --git a/Makefile.win b/Makefile.win
index 705b643c22..afe7b2dc1c 100644
--- a/Makefile.win
+++ b/Makefile.win
@@ -639,6 +639,7 @@ _build:
$(MAKE) $(MAKEOPT) -f mod_proxy_hcheck.mak CFG="mod_proxy_hcheck - Win32 $(LONG)" RECURSE=0 $(CTARGET)
$(MAKE) $(MAKEOPT) -f mod_proxy_http.mak CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
$(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+ $(MAKE) $(MAKEOPT) -f mod_proxy_uwsgi.mak CFG="mod_proxy_uwsgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
$(MAKE) $(MAKEOPT) -f mod_proxy_wstunnel.mak CFG="mod_proxy_wstunnel - Win32 $(LONG)" RECURSE=0 $(CTARGET)
cd ..\..
cd modules\proxy\balancers
@@ -931,6 +932,7 @@ _copybin:
copy modules\proxy\$(LONG)\mod_proxy_hcheck.$(src_so) "$(inst_so)" <.y
copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so) "$(inst_so)" <.y
copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so) "$(inst_so)" <.y
+ copy modules\proxy\$(LONG)\mod_proxy_uwsgi.$(src_so) "$(inst_so)" <.y
copy modules\proxy\$(LONG)\mod_proxy_wstunnel.$(src_so) "$(inst_so)" <.y
copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
diff --git a/STATUS b/STATUS
index ea410dca93..d162a736ec 100644
--- a/STATUS
+++ b/STATUS
@@ -29,7 +29,8 @@ Release history:
[NOTE that x.{odd}.z versions are strictly Alpha/Beta releases,
while x.{even}.z versions are Stable/GA releases.]
- 2.4.30 : In development. Jim proposes a T&R Feb. 19, 2018.
+ 2.4.31 : In development.
+ 2.4.30 : Tagged on February 19, 2018.
2.4.29 : Tagged on October 17, 2017. Released on October 23, 2017.
2.4.28 : Tagged on September 25, 2017. Released on October 5, 2017.
2.4.27 : Tagged on July 6, 2017. Released on July 11, 2017.
@@ -118,22 +119,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) mod_proxy: Provide an RFC1035 compliant version of the hostname in the
- proxy_worker_shared structure. PR62085
- trunk patch: http://svn.apache.org/r1824176
- +1: minfrin, jim, ylavic
- jailletc36: is message 010118 still needed? Or at least mitigated with
- something like: "for third party proxy module usage only"?
- Also, does it require a ap_mmn.h update?
- minfrin: message 010118 toned down, MMN bump updated, clash with r1823482 resolved, s/APLOG_NOTICE/APLOG_INFO/
- http://svn.apache.org/r1824460
- http://svn.apache.org/r1824482
- 2.4.x patch: https://svn.apache.org/repos/asf/httpd/httpd/patches/2.4.x/proxy-rfc1035-hostname-v3.diff
-
-
-PATCHES PROPOSED TO BACKPORT FROM TRUNK:
- [ New proposals should be added at the end of the list ]
-
*) mpm_queue: Put fdqueue code in common for MPMs event and worker.
trunk patch: http://svn.apache.org/r1821624
http://svn.apache.org/r1821625
@@ -156,10 +141,17 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
http://svn.apache.org/r1824381
2.4.x patch: svn merge ^/httpd/httpd/branches/2.4.x-mpm_fdqueue .
(http://home.apache.org/~ylavic/patches/httpd-2.4.x-mpm_fdqueue.patch)
- +1: ylavic, minfrin (with mmn bump for mpm_fdqueue.h)
+ +1: ylavic, minfrin, jim
ylavic: The branch merge helps resolve move conflicts since event and
worker fdqueue.[ch] differ(ed) between 2.4.x and trunk. The patch
is provided only to help review.
+ ylavic: re MMN, the API is private, so no bump (supposedly).
+ minfrin: Keeping mpm_fdqueue.h private makes it hard for people to fork event
+ and worker and make their own mpms. Can we make this public?
+ ylavic: not easier/harder than now I suppose (worker/event fqueues are private).
+ maybe make them public in trunk only, so that we have more time to
+ discuss the API (if needed).
+ minfrin: happy with that, we can backport the final API.
*) mpm_event: Do lingering close in worker(s).
trunk patch: http://svn.apache.org/r1823047
@@ -171,18 +163,26 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
(trunk works if mpm_queue above is merged first, otherwise
the mpm_queue branch can also be synchronized after this
merge, YMMV :)
- +1: ylavic,
+ +1: ylavic, minfrin (with mmn bump for CONN_STATE_NUM), jim
+ ylavic: + http://svn.apache.org/r1824862 (MMN bump)
- *) mod_ssl: Introduce SSLPolicy/SSLPolicyDefine directives.
- trunk patch: http://svn.apache.org/r1805182
- http://svn.apache.org/r1805186
- http://svn.apache.org/r1808335
- http://svn.apache.org/r1811475
- http://svn.apache.org/r1817381
- http://svn.apache.org/r1817894
- 2.4.x patch: https://svn.apache.org/repos/asf/httpd/httpd/patches/2.4.x/mod_ssl_policy.diff
- +1: icing, minfrin
- minfrin: 2.4.x patch not applying for me, trunk patches work
+ *) mod_ldap: apr_rmm loops/hangs/crashes when LDAP auth is used in vhosts
+ due to unlocked access.
+ trunk patch: http://svn.apache.org/r1824811
+ 2.4.x: trunk works
+ +1 covener, rpluem, jim
+
+
+PATCHES PROPOSED TO BACKPORT FROM TRUNK:
+ [ New proposals should be added at the end of the list ]
+
+ *) mod_dav: Allow other modules to become providers and add ACLs
+ to the DAV response.
+ trunk patch: http://svn.apache.org/r1748322
+ http://svn.apache.org/r1824590
+ http://svn.apache.org/r1824596
+ 2.4.x: trunk works modulo CHANGES/MMN/log-message
+ +1: minfrin, jim
PATCHES/ISSUES THAT ARE BEING WORKED
@@ -259,23 +259,6 @@ PATCHES/ISSUES THAT ARE BEING WORKED
make it nonblocking (by default)?
jim: Non-blocking seems the best way to handle...
- * mod_dav: Allow other modules to become providers and add ACLs
- to the DAV response. Requires a release of apr-util v1.6.
- trunk patch: http://svn.apache.org/r1748322
- 2.4.x: trunk works modulo CHANGES/MMN
- +1: minfrin
- rpluem asks: Will this compile with apr-util < v1.6 and keep
- mod_dav working (without the new features of the patch of course)?
- I doubt that we will require apr-util 1.6 for the lifetime of 2.4.x
- (see the discussion around ap_cstr_casecmp[n] an apr 1.6)
- minfrin: Yes, as you can see in the patch everything applies only
- if APR_XML_X2T_PARSED is defined, and the patch was tested with
- both apr-util v1.6 and apr-util v1.5.
- -1: jorton, breaks binary backwards compat per dev@ discuss
- msgid <20160902120654.GA12674@redhat.com>
- (& also, making the structure change with apr-util version
- means it breaks binary compat across an apr-util upgrade?)
-
* Support PCRE2 (10.x) in place of PCRE (8.x).
Submitted by: wrowe, Petr Pisar [ppisar redhat.com]
trunk patches:
diff --git a/build/installwinconf.awk b/build/installwinconf.awk
index ab64b2daa4..a786c7fc05 100644
--- a/build/installwinconf.awk
+++ b/build/installwinconf.awk
@@ -173,6 +173,7 @@ BEGIN {
print "#LoadModule proxy_http_module modules/mod_proxy_http.so" > dstfl;
print "#LoadModule proxy_http2_module modules/mod_proxy_http2.so" > dstfl;
print "#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so" > dstfl;
+ print "#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so" > dstfl;
print "#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so" > dstfl;
print "#LoadModule ratelimit_module modules/mod_ratelimit.so" > dstfl;
print "#LoadModule reflector_module modules/mod_reflector.so" > dstfl;
diff --git a/docs/manual/convenience.map b/docs/manual/convenience.map
index d854a7dc3a..dce68daaea 100644
--- a/docs/manual/convenience.map
+++ b/docs/manual/convenience.map
@@ -370,6 +370,24 @@ maxrequestworkers mod/mpm_common.html#maxrequestworkers
maxspareservers mod/prefork.html#maxspareservers
maxsparethreads mod/mpm_common.html#maxsparethreads
maxthreads mod/mpm_netware.html#maxthreads
+mdbaseserver mod/mod_md.html#mdbaseserver
+mdcachallenges mod/mod_md.html#mdcachallenges
+mdcertificateagreement mod/mod_md.html#mdcertificateagreement
+mdcertificateauthority mod/mod_md.html#mdcertificateauthority
+mdcertificateprotocol mod/mod_md.html#mdcertificateprotocol
+mddrivemode mod/mod_md.html#mddrivemode
+mdhttpproxy mod/mod_md.html#mdhttpproxy
+mdmember mod/mod_md.html#mdmember
+mdmembers mod/mod_md.html#mdmembers
+mdmuststaple mod/mod_md.html#mdmuststaple
+mdnotifycmd mod/mod_md.html#mdnotifycmd
+mdomain mod/mod_md.html#mdomain
+mdomainset mod/mod_md.html#mdomainset
+mdportmap mod/mod_md.html#mdportmap
+mdprivatekeys mod/mod_md.html#mdprivatekeys
+mdrenewwindow mod/mod_md.html#mdrenewwindow
+mdrequirehttps mod/mod_md.html#mdrequirehttps
+mdstoredir mod/mod_md.html#mdstoredir
memcacheconnttl mod/mod_socache_memcache.html#memcacheconnttl
mergetrailers mod/core.html#mergetrailers
metadir mod/mod_cern_meta.html#metadir
@@ -461,6 +479,8 @@ remoteipheader mod/mod_remoteip.html#remoteipheader
remoteipinternalproxy mod/mod_remoteip.html#remoteipinternalproxy
remoteipinternalproxylist mod/mod_remoteip.html#remoteipinternalproxylist
remoteipproxiesheader mod/mod_remoteip.html#remoteipproxiesheader
+remoteipproxyprotocol mod/mod_remoteip.html#remoteipproxyprotocol
+remoteipproxyprotocolexceptions mod/mod_remoteip.html#remoteipproxyprotocolexceptions
remoteiptrustedproxy mod/mod_remoteip.html#remoteiptrustedproxy
remoteiptrustedproxylist mod/mod_remoteip.html#remoteiptrustedproxylist
removecharset mod/mod_mime.html#removecharset
diff --git a/docs/manual/install.xml b/docs/manual/install.xml
index 59a8728ab7..e5d4bac304 100644
--- a/docs/manual/install.xml
+++ b/docs/manual/install.xml
@@ -52,6 +52,34 @@
<section id="overview"><title>Overview for the
impatient</title>
+ <dl>
+ <dt>Installing on Fedora/CentOS/Red Hat Enterprise Linux</dt>
+ <dd>
+ <highlight>
+sudo yum install httpd
+sudo systemctl enable httpd
+sudo systemctl start httpd
+ </highlight>
+
+ <note type="warning">Newer releases of these distros use
+ <code>dnf</code> rather than <code>yum</code>. See <a
+ href="https://fedoraproject.org/wiki/Apache_HTTP_Server">the
+ Fedora project's documentation</a> for platform-specific notes.</note>
+ </dd>
+
+ <dt>Installing on Ubuntu/Debian</dt>
+ <dd>
+<highlight>
+sudo apt install apache2
+sudo service apache2 start
+</highlight>
+
+ <note type="warning">See <a href="https://help.ubuntu.com/lts/serverguide/httpd.html">Ubuntu's documentation</a> for platform-specific notes.</note>
+
+ </dd>
+
+ <dt>Installing from source</dt>
+ <dd>
<table>
<columnspec><column width=".13"/><column width=".80"/></columnspec>
<tr>
@@ -102,15 +130,22 @@
</tr>
</table>
- <p><em>NN</em> must be replaced with the current version
- number, and <em>PREFIX</em> must be replaced with the
- filesystem path under which the server should be installed. If
- <em>PREFIX</em> is not specified, it defaults to
- <code>/usr/local/apache2</code>.</p>
+ <p><em>NN</em> must be replaced with the current version
+ number, and <em>PREFIX</em> must be replaced with the
+ filesystem path under which the server should be installed. If
+ <em>PREFIX</em> is not specified, it defaults to
+ <code>/usr/local/apache2</code>.</p>
+
+ <p>Each section of the compilation and installation process is
+ described in more detail below, beginning with the requirements
+ for compiling and installing Apache httpd.</p>
+ </dd>
+ </dl>
+
+ <note type="warning">Don't see your favorite platform mentioned
+ here? <a href="http://httpd.apache.org/docs-project/">Come help us
+ improve this doc.</a>
- <p>Each section of the compilation and installation process is
- described in more detail below, beginning with the requirements
- for compiling and installing Apache httpd.</p>
</section>
<section id="requirements"><title>Requirements</title>
diff --git a/docs/manual/mod/allmodules.xml b/docs/manual/mod/allmodules.xml
index 766442ff71..4020643267 100644
--- a/docs/manual/mod/allmodules.xml
+++ b/docs/manual/mod/allmodules.xml
@@ -91,6 +91,7 @@
<modulefile>mod_proxy_http.xml</modulefile>
<modulefile>mod_proxy_http2.xml</modulefile>
<modulefile>mod_proxy_scgi.xml</modulefile>
+ <modulefile>mod_proxy_uwsgi.xml</modulefile>
<modulefile>mod_proxy_wstunnel.xml</modulefile>
<modulefile>mod_ratelimit.xml</modulefile>
<modulefile>mod_reflector.xml</modulefile>
diff --git a/docs/manual/mod/allmodules.xml.de b/docs/manual/mod/allmodules.xml.de
index cd3cebf9a8..4bacc7232e 100644
--- a/docs/manual/mod/allmodules.xml.de
+++ b/docs/manual/mod/allmodules.xml.de
@@ -91,6 +91,7 @@
<modulefile>mod_proxy_http.xml</modulefile>
<modulefile>mod_proxy_http2.xml</modulefile>
<modulefile>mod_proxy_scgi.xml</modulefile>
+ <modulefile>mod_proxy_uwsgi.xml</modulefile>
<modulefile>mod_proxy_wstunnel.xml</modulefile>
<modulefile>mod_ratelimit.xml</modulefile>
<modulefile>mod_reflector.xml</modulefile>
diff --git a/docs/manual/mod/allmodules.xml.es b/docs/manual/mod/allmodules.xml.es
index 32be72ca92..9b48078fa1 100644
--- a/docs/manual/mod/allmodules.xml.es
+++ b/docs/manual/mod/allmodules.xml.es
@@ -91,6 +91,7 @@
<modulefile>mod_proxy_http.xml</modulefile>
<modulefile>mod_proxy_http2.xml</modulefile>
<modulefile>mod_proxy_scgi.xml</modulefile>
+ <modulefile>mod_proxy_uwsgi.xml</modulefile>
<modulefile>mod_proxy_wstunnel.xml</modulefile>
<modulefile>mod_ratelimit.xml</modulefile>
<modulefile>mod_reflector.xml</modulefile>
diff --git a/docs/manual/mod/allmodules.xml.fr b/docs/manual/mod/allmodules.xml.fr
index 82a07524c8..e97ecf431e 100644
--- a/docs/manual/mod/allmodules.xml.fr
+++ b/docs/manual/mod/allmodules.xml.fr
@@ -91,6 +91,7 @@
<modulefile>mod_proxy_http.xml.fr</modulefile>
<modulefile>mod_proxy_http2.xml</modulefile>
<modulefile>mod_proxy_scgi.xml.fr</modulefile>
+ <modulefile>mod_proxy_uwsgi.xml</modulefile>
<modulefile>mod_proxy_wstunnel.xml</modulefile>
<modulefile>mod_ratelimit.xml.fr</modulefile>
<modulefile>mod_reflector.xml.fr</modulefile>
diff --git a/docs/manual/mod/allmodules.xml.ja b/docs/manual/mod/allmodules.xml.ja
index d1be4c872d..e0f5f8315e 100644
--- a/docs/manual/mod/allmodules.xml.ja
+++ b/docs/manual/mod/allmodules.xml.ja
@@ -91,6 +91,7 @@
<modulefile>mod_proxy_http.xml</modulefile>
<modulefile>mod_proxy_http2.xml</modulefile>
<modulefile>mod_proxy_scgi.xml</modulefile>
+ <modulefile>mod_proxy_uwsgi.xml</modulefile>
<modulefile>mod_proxy_wstunnel.xml</modulefile>
<modulefile>mod_ratelimit.xml</modulefile>
<modulefile>mod_reflector.xml</modulefile>
diff --git a/docs/manual/mod/allmodules.xml.ko b/docs/manual/mod/allmodules.xml.ko
index 5f3b24988d..0805095e78 100644
--- a/docs/manual/mod/allmodules.xml.ko
+++ b/docs/manual/mod/allmodules.xml.ko
@@ -91,6 +91,7 @@
<modulefile>mod_proxy_http.xml</modulefile>
<modulefile>mod_proxy_http2.xml</modulefile>
<modulefile>mod_proxy_scgi.xml</modulefile>
+ <modulefile>mod_proxy_uwsgi.xml</modulefile>
<modulefile>mod_proxy_wstunnel.xml</modulefile>
<modulefile>mod_ratelimit.xml</modulefile>
<modulefile>mod_reflector.xml</modulefile>
diff --git a/docs/manual/mod/allmodules.xml.tr b/docs/manual/mod/allmodules.xml.tr
index 820a03b445..99fa7dfbe1 100644
--- a/docs/manual/mod/allmodules.xml.tr
+++ b/docs/manual/mod/allmodules.xml.tr
@@ -91,6 +91,7 @@
<modulefile>mod_proxy_http.xml</modulefile>
<modulefile>mod_proxy_http2.xml</modulefile>
<modulefile>mod_proxy_scgi.xml</modulefile>
+ <modulefile>mod_proxy_uwsgi.xml</modulefile>
<modulefile>mod_proxy_wstunnel.xml</modulefile>
<modulefile>mod_ratelimit.xml</modulefile>
<modulefile>mod_reflector.xml</modulefile>
diff --git a/docs/manual/mod/allmodules.xml.zh-cn b/docs/manual/mod/allmodules.xml.zh-cn
index 766442ff71..4020643267 100644
--- a/docs/manual/mod/allmodules.xml.zh-cn
+++ b/docs/manual/mod/allmodules.xml.zh-cn
@@ -91,6 +91,7 @@
<modulefile>mod_proxy_http.xml</modulefile>
<modulefile>mod_proxy_http2.xml</modulefile>
<modulefile>mod_proxy_scgi.xml</modulefile>
+ <modulefile>mod_proxy_uwsgi.xml</modulefile>
<modulefile>mod_proxy_wstunnel.xml</modulefile>
<modulefile>mod_ratelimit.xml</modulefile>
<modulefile>mod_reflector.xml</modulefile>
diff --git a/docs/manual/mod/directives.html.de b/docs/manual/mod/directives.html.de
index 693b9beb7f..2e619aba72 100644
--- a/docs/manual/mod/directives.html.de
+++ b/docs/manual/mod/directives.html.de
@@ -521,6 +521,8 @@
<li><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
<li><a href="mod_mime.html#removecharset">RemoveCharset</a></li>
diff --git a/docs/manual/mod/directives.html.en b/docs/manual/mod/directives.html.en
index c421f3d4e4..7bf3078f11 100644
--- a/docs/manual/mod/directives.html.en
+++ b/docs/manual/mod/directives.html.en
@@ -522,6 +522,8 @@
<li><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
<li><a href="mod_mime.html#removecharset">RemoveCharset</a></li>
diff --git a/docs/manual/mod/directives.html.es b/docs/manual/mod/directives.html.es
index 07a1213de9..62de0fd457 100644
--- a/docs/manual/mod/directives.html.es
+++ b/docs/manual/mod/directives.html.es
@@ -524,6 +524,8 @@
<li><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
<li><a href="mod_mime.html#removecharset">RemoveCharset</a></li>
diff --git a/docs/manual/mod/directives.html.fr b/docs/manual/mod/directives.html.fr
index f6ef824463..2f735d308d 100644
--- a/docs/manual/mod/directives.html.fr
+++ b/docs/manual/mod/directives.html.fr
@@ -522,6 +522,8 @@
<li><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
<li><a href="mod_mime.html#removecharset">RemoveCharset</a></li>
diff --git a/docs/manual/mod/directives.html.ja.utf8 b/docs/manual/mod/directives.html.ja.utf8
index 05d50f8164..6a6ef51a1e 100644
--- a/docs/manual/mod/directives.html.ja.utf8
+++ b/docs/manual/mod/directives.html.ja.utf8
@@ -519,6 +519,8 @@
<li><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
<li><a href="mod_mime.html#removecharset">RemoveCharset</a></li>
diff --git a/docs/manual/mod/directives.html.ko.euc-kr b/docs/manual/mod/directives.html.ko.euc-kr
index 31417e3c42..1250bf929e 100644
--- a/docs/manual/mod/directives.html.ko.euc-kr
+++ b/docs/manual/mod/directives.html.ko.euc-kr
@@ -519,6 +519,8 @@
<li><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
<li><a href="mod_mime.html#removecharset">RemoveCharset</a></li>
diff --git a/docs/manual/mod/directives.html.tr.utf8 b/docs/manual/mod/directives.html.tr.utf8
index 7b4768d49f..abe04bac67 100644
--- a/docs/manual/mod/directives.html.tr.utf8
+++ b/docs/manual/mod/directives.html.tr.utf8
@@ -518,6 +518,8 @@
<li><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
<li><a href="mod_mime.html#removecharset">RemoveCharset</a></li>
diff --git a/docs/manual/mod/directives.html.zh-cn.utf8 b/docs/manual/mod/directives.html.zh-cn.utf8
index 63a6ee79a4..06f86fd5cb 100644
--- a/docs/manual/mod/directives.html.zh-cn.utf8
+++ b/docs/manual/mod/directives.html.zh-cn.utf8
@@ -517,6 +517,8 @@
<li><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
<li><a href="mod_mime.html#removecharset">RemoveCharset</a></li>
diff --git a/docs/manual/mod/index.html.de b/docs/manual/mod/index.html.de
index 4e4997725c..a12a4b3639 100644
--- a/docs/manual/mod/index.html.de
+++ b/docs/manual/mod/index.html.de
@@ -205,6 +205,7 @@ from Clients' networks in a proxy context.</dd>
<dt><a href="mod_proxy_http2.html">mod_proxy_http2</a></dt><dd>HTTP/2 support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_scgi.html">mod_proxy_scgi</a></dt><dd>SCGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+<dt><a href="mod_proxy_uwsgi.html">mod_proxy_uwsgi</a></dt><dd>UWSGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></dt><dd>Websockets support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_ratelimit.html" id="R" name="R">mod_ratelimit</a></dt><dd>Bandwidth Rate Limiting for Clients</dd>
diff --git a/docs/manual/mod/index.html.en b/docs/manual/mod/index.html.en
index 08afdd88c5..ce2b717584 100644
--- a/docs/manual/mod/index.html.en
+++ b/docs/manual/mod/index.html.en
@@ -201,6 +201,7 @@ from Clients' networks in a proxy context.</dd>
<dt><a href="mod_proxy_http2.html">mod_proxy_http2</a></dt><dd>HTTP/2 support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_scgi.html">mod_proxy_scgi</a></dt><dd>SCGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+<dt><a href="mod_proxy_uwsgi.html">mod_proxy_uwsgi</a></dt><dd>UWSGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></dt><dd>Websockets support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_ratelimit.html" id="R" name="R">mod_ratelimit</a></dt><dd>Bandwidth Rate Limiting for Clients</dd>
diff --git a/docs/manual/mod/index.html.es b/docs/manual/mod/index.html.es
index aa3d8fdf06..13531a3cc3 100644
--- a/docs/manual/mod/index.html.es
+++ b/docs/manual/mod/index.html.es
@@ -206,6 +206,7 @@ from Clients' networks in a proxy context.</dd>
<dt><a href="mod_proxy_http2.html">mod_proxy_http2</a></dt><dd>HTTP/2 support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_scgi.html">mod_proxy_scgi</a></dt><dd>SCGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+<dt><a href="mod_proxy_uwsgi.html">mod_proxy_uwsgi</a></dt><dd>UWSGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></dt><dd>Websockets support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_ratelimit.html" id="R" name="R">mod_ratelimit</a></dt><dd>Bandwidth Rate Limiting for Clients</dd>
diff --git a/docs/manual/mod/index.html.fr b/docs/manual/mod/index.html.fr
index 1a3fd3b9a9..4e7ff98e52 100644
--- a/docs/manual/mod/index.html.fr
+++ b/docs/manual/mod/index.html.fr
@@ -240,6 +240,7 @@ mandataire.</dd>
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_scgi.html">mod_proxy_scgi</a></dt><dd>Module fournissant le support de la passerelle SCGI à
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+<dt><a href="mod_proxy_uwsgi.html">mod_proxy_uwsgi</a></dt><dd>UWSGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></dt><dd>Websockets support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_ratelimit.html" id="R" name="R">mod_ratelimit</a></dt><dd>Limitation de la bande passante pour les clients</dd>
diff --git a/docs/manual/mod/index.html.ja.utf8 b/docs/manual/mod/index.html.ja.utf8
index 8bcb4d5c4f..ec87c617c7 100644
--- a/docs/manual/mod/index.html.ja.utf8
+++ b/docs/manual/mod/index.html.ja.utf8
@@ -193,6 +193,7 @@ from Clients' networks in a proxy context.</dd>
<dt><a href="mod_proxy_http2.html">mod_proxy_http2</a></dt><dd>HTTP/2 support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_scgi.html">mod_proxy_scgi</a></dt><dd>SCGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+<dt><a href="mod_proxy_uwsgi.html">mod_proxy_uwsgi</a></dt><dd>UWSGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></dt><dd>Websockets support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_ratelimit.html" id="R" name="R">mod_ratelimit</a></dt><dd>Bandwidth Rate Limiting for Clients</dd>
diff --git a/docs/manual/mod/index.html.ko.euc-kr b/docs/manual/mod/index.html.ko.euc-kr
index 040703af34..852a8c015f 100644
--- a/docs/manual/mod/index.html.ko.euc-kr
+++ b/docs/manual/mod/index.html.ko.euc-kr
@@ -191,6 +191,7 @@ from Clients' networks in a proxy context.</dd>
<dt><a href="mod_proxy_http2.html">mod_proxy_http2</a></dt><dd>HTTP/2 support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_scgi.html">mod_proxy_scgi</a></dt><dd>SCGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+<dt><a href="mod_proxy_uwsgi.html">mod_proxy_uwsgi</a></dt><dd>UWSGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></dt><dd>Websockets support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_ratelimit.html" id="R" name="R">mod_ratelimit</a></dt><dd>Bandwidth Rate Limiting for Clients</dd>
diff --git a/docs/manual/mod/index.html.tr.utf8 b/docs/manual/mod/index.html.tr.utf8
index 6313343ebc..6289d9f321 100644
--- a/docs/manual/mod/index.html.tr.utf8
+++ b/docs/manual/mod/index.html.tr.utf8
@@ -197,6 +197,7 @@ from Clients' networks in a proxy context.</dd>
<dt><a href="mod_proxy_http2.html">mod_proxy_http2</a></dt><dd>HTTP/2 support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_scgi.html">mod_proxy_scgi</a></dt><dd>SCGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+<dt><a href="mod_proxy_uwsgi.html">mod_proxy_uwsgi</a></dt><dd>UWSGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></dt><dd>Websockets support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_ratelimit.html" id="R" name="R">mod_ratelimit</a></dt><dd>Bandwidth Rate Limiting for Clients</dd>
diff --git a/docs/manual/mod/index.html.zh-cn.utf8 b/docs/manual/mod/index.html.zh-cn.utf8
index 2a20b708eb..860a905927 100644
--- a/docs/manual/mod/index.html.zh-cn.utf8
+++ b/docs/manual/mod/index.html.zh-cn.utf8
@@ -196,6 +196,7 @@ from Clients' networks in a proxy context.</dd>
<dt><a href="mod_proxy_http2.html">mod_proxy_http2</a></dt><dd>HTTP/2 support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_scgi.html">mod_proxy_scgi</a></dt><dd>SCGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+<dt><a href="mod_proxy_uwsgi.html">mod_proxy_uwsgi</a></dt><dd>UWSGI gateway module for <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_proxy_wstunnel.html">mod_proxy_wstunnel</a></dt><dd>Websockets support module for
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
<dt><a href="mod_ratelimit.html" id="R" name="R">mod_ratelimit</a></dt><dd>Bandwidth Rate Limiting for Clients</dd>
diff --git a/docs/manual/mod/mod_authnz_ldap.html.fr b/docs/manual/mod/mod_authnz_ldap.html.fr
index 06aee99d80..6c2f5c8dac 100644
--- a/docs/manual/mod/mod_authnz_ldap.html.fr
+++ b/docs/manual/mod/mod_authnz_ldap.html.fr
@@ -29,8 +29,6 @@
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_ldap.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_authnz_ldap.html" title="Français">&nbsp;fr&nbsp;</a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet d'utiliser un annuaire LDAP pour l'authentification
HTTP de base.</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
@@ -538,7 +536,7 @@ AuthLDAPMaxSubGroupDepth 1</pre>
<p>La directive suivante accorderait l'autorisation d'accès à tout
utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
- <pre class="prettyprint lang-config">Require ldap-attribute employeeType=active</pre>
+ <pre class="prettyprint lang-config">Require ldap-attribute employeeType="active"</pre>
<p>Plusieurs paires attribut/valeur peuvent être spécifiées par une
diff --git a/docs/manual/mod/mod_authnz_ldap.xml.fr b/docs/manual/mod/mod_authnz_ldap.xml.fr
index 65db65b16a..09b3479813 100644
--- a/docs/manual/mod/mod_authnz_ldap.xml.fr
+++ b/docs/manual/mod/mod_authnz_ldap.xml.fr
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1823464:1824143 (outdated) -->
+<!-- English Revision: 1824143 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
@@ -530,7 +530,7 @@ Require ldap-dn cn=Barbara Jenson, o=Example
utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
<highlight language="config">
- Require ldap-attribute employeeType=active
+ Require ldap-attribute employeeType="active"
</highlight>
<p>Plusieurs paires attribut/valeur peuvent être spécifiées par une
diff --git a/docs/manual/mod/mod_authnz_ldap.xml.meta b/docs/manual/mod/mod_authnz_ldap.xml.meta
index 7a6a237d9a..4ec661a32d 100644
--- a/docs/manual/mod/mod_authnz_ldap.xml.meta
+++ b/docs/manual/mod/mod_authnz_ldap.xml.meta
@@ -8,6 +8,6 @@
<variants>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
</variants>
</metafile>
diff --git a/docs/manual/mod/mod_proxy_fcgi.html.fr b/docs/manual/mod/mod_proxy_fcgi.html.fr
index 775e7e5b56..0f1c12bf02 100644
--- a/docs/manual/mod/mod_proxy_fcgi.html.fr
+++ b/docs/manual/mod/mod_proxy_fcgi.html.fr
@@ -29,8 +29,6 @@
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_fcgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_proxy_fcgi.html" title="Français">&nbsp;fr&nbsp;</a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Module fournissant le support de FastCGI à
<code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
@@ -98,11 +96,12 @@
<div class="note"><h3>Active la réutilisation des connexions vers un serveur FCGI
d'arrière-plan tel que PHP-FPM</h3>
- <p>Il faut garder à l'esprit que PHP-FPM (en février 2018)
- utilise un modèle du style prefork ; autrement dit, chacun de ses processus
- de travail ne peut gérer qu'une connexion à la fois.<br />
- Par défaut et lorsqu'il est configuré avec <code>enablereuse=on</code>,
- mod_proxy autorise un jeu de <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> connexions vers le serveur
+ <p>Il faut garder à l'esprit que PHP-FPM (en février 2018) utilise un modèle
+ du style prefork ; autrement dit, chacun de ses processus de travail ne peut
+ gérer qu'une connexion à la fois.<br /> Par défaut et lorsqu'il est
+ configuré avec <code>enablereuse=on</code> et lorsqu'un MPM à base de
+ threads est utilisé (comme <code class="module"><a href="../mod/worker.html">worker</a></code> ou
+ <code class="module"><a href="../mod/event.html">event</a></code>), mod_proxy autorise un jeu de <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> connexions vers le serveur
d'arrière-plan pour chaque processus httpd, et par conséquent, il faut
prêter une attention particulière aux situations suivantes :</p>
<ul>
diff --git a/docs/manual/mod/mod_proxy_fcgi.xml.fr b/docs/manual/mod/mod_proxy_fcgi.xml.fr
index 6f056b9df6..faf65a7c39 100644
--- a/docs/manual/mod/mod_proxy_fcgi.xml.fr
+++ b/docs/manual/mod/mod_proxy_fcgi.xml.fr
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1823753:1823834 (outdated) -->
+<!-- English Revision: 1823834 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
@@ -90,11 +90,12 @@
<note><title>Active la réutilisation des connexions vers un serveur FCGI
d'arrière-plan tel que PHP-FPM</title>
- <p>Il faut garder à l'esprit que PHP-FPM (en février 2018)
- utilise un modèle du style prefork ; autrement dit, chacun de ses processus
- de travail ne peut gérer qu'une connexion à la fois.<br />
- Par défaut et lorsqu'il est configuré avec <code>enablereuse=on</code>,
- mod_proxy autorise un jeu de <directive
+ <p>Il faut garder à l'esprit que PHP-FPM (en février 2018) utilise un modèle
+ du style prefork ; autrement dit, chacun de ses processus de travail ne peut
+ gérer qu'une connexion à la fois.<br /> Par défaut et lorsqu'il est
+ configuré avec <code>enablereuse=on</code> et lorsqu'un MPM à base de
+ threads est utilisé (comme <module>worker</module> ou
+ <module>event</module>), mod_proxy autorise un jeu de <directive
module="mpm_common">ThreadsPerChild</directive> connexions vers le serveur
d'arrière-plan pour chaque processus httpd, et par conséquent, il faut
prêter une attention particulière aux situations suivantes :</p>
diff --git a/docs/manual/mod/mod_proxy_fcgi.xml.meta b/docs/manual/mod/mod_proxy_fcgi.xml.meta
index 2b5ea83e0e..6b7f40e715 100644
--- a/docs/manual/mod/mod_proxy_fcgi.xml.meta
+++ b/docs/manual/mod/mod_proxy_fcgi.xml.meta
@@ -8,6 +8,6 @@
<variants>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
</variants>
</metafile>
diff --git a/docs/manual/mod/mod_remoteip.html.en b/docs/manual/mod/mod_remoteip.html.en
index cd829fc56c..ceaeb21ba2 100644
--- a/docs/manual/mod/mod_remoteip.html.en
+++ b/docs/manual/mod/mod_remoteip.html.en
@@ -47,6 +47,12 @@ via the request headers.
with the useragent IP address reported in the request header configured
with the <code class="directive"><a href="#remoteipheader">RemoteIPHeader</a></code> directive.</p>
+ <p>Additionally, this module implements the server side of
+ HAProxy's
+ <a href="http://blog.haproxy.com/haproxy/proxy-protocol/">PROXY Protocol</a> when
+ using the <code class="directive"><a href="#remoteipproxyprotocol">RemoteIPProxyProtocol</a></code>
+ directive.</p>
+
<p>Once replaced as instructed, this overridden useragent IP address is
then used for the <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>
<code class="directive"><a href="../mod/mod_authz_core.html#require">Require ip</a></code>
@@ -69,6 +75,8 @@ via the request headers.
<li><img alt="" src="../images/down.gif" /> <a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
</ul>
@@ -77,6 +85,7 @@ via the request headers.
<li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
<li><code class="module"><a href="../mod/mod_status.html">mod_status</a></code></li>
<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
+<li><a href="http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt">Proxy Protocol Spec</a></li>
<li><a href="#comments_section">Comments</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
@@ -216,6 +225,77 @@ RemoteIPProxiesHeader X-Forwarded-By</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RemoteIPProxyProtocol" id="RemoteIPProxyProtocol">RemoteIPProxyProtocol</a> <a name="remoteipproxyprotocol" id="remoteipproxyprotocol">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable or disable PROXY protocol handling</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RemoteIPProxyProtocol On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>RemoteIPProxyProtocol is only available in httpd 2.4.28 and newer</td></tr>
+</table>
+ <p>The <code class="directive">RemoteIPProxyProtocol</code> directive enables or
+ disables the reading and handling of the PROXY protocol connection header.
+ If enabled with the <code>On</code> flag, the upstream client <em>must</em>
+ send the header every time it opens a connection or the connection will
+ be aborted unless it is in the list of disabled hosts provided by the
+ <code class="directive"><a href="#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></code>
+ directive.</p>
+
+ <p>While this directive may be specified in any virtual host, it is
+ important to understand that because the PROXY protocol is connection
+ based and protocol agnostic, the enabling and disabling is actually based
+ on IP address and port. This means that if you have multiple name-based
+ virtual hosts for the same host and port, and you enable it for any one of
+ them, then it is enabled for all of them (with that host and port). It also
+ means that if you attempt to enable the PROXY protocol in one and disable
+ in the other, that won't work; in such a case, the last one wins and a
+ notice will be logged indicating which setting was being overridden.</p>
+
+ <pre class="prettyprint lang-config">Listen 80
+&lt;VirtualHost *:80&gt;
+ ServerName www.example.com
+ RemoteIPProxyProtocol On
+
+ #Requests to this virtual host must have a PROXY protocol
+ # header provided. If it is missing, the connection will
+ # be aborted
+&lt;/VirtualHost&gt;
+
+Listen 8080
+&lt;VirtualHost *:8080&gt;
+ ServerName www.example.com
+ RemoteIPProxyProtocol On
+ RemoteIPProxyProtocolExceptions 127.0.0.1 10.0.0.0/8
+
+ #Requests to this virtual host must have a PROXY protocol
+ # header provided. If it is missing, the connection will
+ # be aborted except when coming from localhost or the
+ # 10.x.x.x RFC1918 range
+&lt;/VirtualHost&gt;</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="RemoteIPProxyProtocolExceptions" id="RemoteIPProxyProtocolExceptions">RemoteIPProxyProtocolExceptions</a> <a name="remoteipproxyprotocolexceptions" id="remoteipproxyprotocolexceptions">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Disable processing of PROXY header for certain hosts or networks</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>RemoteIPProxyProtocolExceptions is only available in httpd 2.4.28 and newer</td></tr>
+</table>
+ <p>The <code class="directive">RemoteIPProxyProtocol</code> directive enables or
+ disables the reading and handling of the PROXY protocol connection header.
+ Sometimes it is desirable to require clients to provide the PROXY header, but
+ permit other clients to connect without it. This directive allows a server
+ administrator to configure a single host or CIDR range of hosts that may do
+ so. This is generally useful for monitoring and administrative traffic to a
+ virtual host direct to the server behind the upstream load balancer.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="RemoteIPTrustedProxy" id="RemoteIPTrustedProxy">RemoteIPTrustedProxy</a> <a name="remoteiptrustedproxy" id="remoteiptrustedproxy">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
diff --git a/docs/manual/mod/mod_remoteip.html.fr b/docs/manual/mod/mod_remoteip.html.fr
index 4921c1dd02..f09b787536 100644
--- a/docs/manual/mod/mod_remoteip.html.fr
+++ b/docs/manual/mod/mod_remoteip.html.fr
@@ -49,14 +49,16 @@ répartiteur de charge via les en-têtes de la requête.
l'en-tête de requête configuré via la directive
<code class="directive"><a href="#remoteipheader">RemoteIPHeader</a></code>.</p>
+ <p>Ce module implémente aussi la partie serveur du <a href="http://blog.haproxy.com/haproxy/proxy-protocol/">protocole PROXY</a>
+ de HAProxy via la directive <code class="directive"><a href="#remoteipproxyprotocol">RemoteIPProxyProtocol</a></code>.</p>
+
<p>Une fois sa valeur modifiée comme indiqué, cette adresse IP client est
- utilisée pour la fonctionnalité <code class="directive"><a href="../mod/mod_authz_host.html#require">Require ip</a></code> de
- <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> ; elle est aussi affichée par
- <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>, et enregistrée via les chaînes de formatage
- <code>%a</code> des modules <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> et <code class="module"><a href="../mod/core.html">core</a></code>.
- L'adresse IP client sous-jacente de la connexion est enregistrée via la chaîne de
- formatage <code>%{c}a</code>.
- </p>
+ utilisée pour la fonctionnalité <code class="directive"><a href="../mod/mod_authz_core.html#require">Require ip</a></code> de <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> ;
+ elle est aussi affichée par <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>, et enregistrée via
+ les chaînes de formatage <code>%a</code> des modules
+ <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> et <code class="module"><a href="../mod/core.html">core</a></code>. L'adresse IP
+ client sous-jacente de la connexion est enregistrée via la chaîne de
+ formatage <code>%{c}a</code>. </p>
<div class="warning">Il est essentiel de n'activer cette
fonctionnalité que pour les requêtes en provenance des serveurs
@@ -73,6 +75,8 @@ répartiteur de charge via les en-têtes de la requête.
<li><img alt="" src="../images/down.gif" /> <a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#remoteipinternalproxylist">RemoteIPInternalProxyList</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#remoteipproxyprotocol">RemoteIPProxyProtocol</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
</ul>
@@ -81,6 +85,8 @@ répartiteur de charge via les en-têtes de la requête.
<li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
<li><code class="module"><a href="../mod/mod_status.html">mod_status</a></code></li>
<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
+<li><a href="http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt">Proxy Protocol
+Spec</a></li>
<li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
@@ -250,6 +256,80 @@ RemoteIPProxiesHeader X-Forwarded-By</pre>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="remoteipproxyprotocol" id="remoteipproxyprotocol">Directive</a> <a name="RemoteIPProxyProtocol" id="RemoteIPProxyProtocol">RemoteIPProxyProtocol</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou désactive la gestion du protocole PROXY</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPProxyProtocol On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.28 du serveur HTTP Apache</td></tr>
+</table>
+ <p>La directive <code class="directive">RemoteIPProxyProtocol</code> permet
+ d'activer ou de désactiver la prise en compte et la gestion de l'en-tête de
+ connexion du protocole PROXY. Si elle est définie à <code>On</code>, la
+ demande du client <em>doit</em> envoyer l'en-tête approprié pour chaque
+ nouvelle connexion, sinon cette dernière sera fermée à moins qu'il ne fasse
+ partie de la liste, définie via la directive <code class="directive"><a href="#remoteipproxyprotocoldisablehosts">RemoteIPProxyProtocolDisableHosts</a></code>, des
+ hôtes pour lesquels le protocole PROXY est désactivé.</p>
+
+ <p>Bien que cette directive peut être définie au niveau de n'importe quel
+ serveur virtuel, il est important de garder à l'esprit que, étant donné que
+ le protocole PROXY est basé sur la connexion et agnostique quant au
+ protocle, son activation/désactivation est basée sur le couple adresse
+ IP/port. Cela signifie que si plusieurs serveurs virtuels à base de nom sont
+ configurés avec le même couple adresse IP/port, et si vous activez le
+ protocole PROXY pour l'un d'entre eux, il le sera aussi pour tous les autres
+ (avec le même couple adresse IP/port). Cela signifie aussi que si vous
+ tentez d'activer le protocole PROXY pour un serveur virtuel et de le
+ désactiver pour un autre, cela ne marchera pas ; dans ce dernier cas, la
+ dernière directive l'emporte sur les autres et une notification sera
+ enregistrée dans le journal pour indiquer les réglages qui ont été annulés.</p>
+
+ <pre class="prettyprint lang-config">Listen 80
+&lt;VirtualHost *:80&gt;
+ ServerName www.example.com
+ RemoteIPProxyProtocol On
+
+ #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+ #protocole PROXY. Si ce n'est pas le cas, la connexion sera fermée.
+&lt;/VirtualHost&gt;
+
+Listen 8080
+&lt;VirtualHost *:8080&gt;
+ ServerName www.example.com
+ RemoteIPProxyProtocol On
+ RemoteIPProxyProtocolExceptions 127.0.0.1 10.0.0.0/8
+
+ #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+ #protocole PROXY. Si ce n'est pas le cas, la connexion sera fermée à moins
+ que sa source ne soit localhost ou la gamme d'adresses RFC1918 10.x.x.x
+&lt;/VirtualHost&gt;</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="remoteipproxyprotocolexceptions" id="remoteipproxyprotocolexceptions">Directive</a> <a name="RemoteIPProxyProtocolExceptions" id="RemoteIPProxyProtocolExceptions">RemoteIPProxyProtocolExceptions</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Désactive la prise en compte de l'en-tête PROXY pour certains hôtes
+ou réseaux</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_remoteip</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>RemoteIPProxyProtocolExceptions est disponible à partir de la
+version 2.4.28 du serveur HTTP Apache</td></tr>
+</table>
+ <p>La directive <code class="directive">RemoteIPProxyProtocol</code> permet de
+ contrôler la prise en compte de l'en-tête de connexion du protocole PROXY.
+ Il est parfois souhaitable d'exiger pour certains clients la
+ présence de l'en-tête PROXY, mais aussi de permettre aux autres clients de
+ se connecter sans ce dernier. Cette directive permet à l'administrateur du
+ serveur d'autoriser cette possibilité à un hôte isolé ou à une gamme d'hôtes
+ au format CIDR.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="remoteiptrustedproxy" id="remoteiptrustedproxy">Directive</a> <a name="RemoteIPTrustedProxy" id="RemoteIPTrustedProxy">RemoteIPTrustedProxy</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare les adresses IP clientes de l'intranet dignes de
diff --git a/docs/manual/mod/mod_remoteip.xml.fr b/docs/manual/mod/mod_remoteip.xml.fr
index 10f837749c..8c39f2b18c 100644
--- a/docs/manual/mod/mod_remoteip.xml.fr
+++ b/docs/manual/mod/mod_remoteip.xml.fr
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1568654 -->
+<!-- English Revision: 1824248 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
@@ -46,15 +46,19 @@ répartiteur de charge via les en-têtes de la requête.
l'en-tête de requête configuré via la directive
<directive module="mod_remoteip">RemoteIPHeader</directive>.</p>
+ <p>Ce module implémente aussi la partie serveur du <a
+ href="http://blog.haproxy.com/haproxy/proxy-protocol/">protocole PROXY</a>
+ de HAProxy via la directive <directive
+ module="mod_remoteip">RemoteIPProxyProtocol</directive>.</p>
+
<p>Une fois sa valeur modifiée comme indiqué, cette adresse IP client est
- utilisée pour la fonctionnalité <directive
- module="mod_authz_host" name="require">Require ip</directive> de
- <module>mod_authz_host</module> ; elle est aussi affichée par
- <module>mod_status</module>, et enregistrée via les chaînes de formatage
- <code>%a</code> des modules <module>mod_log_config</module> et <module>core</module>.
- L'adresse IP client sous-jacente de la connexion est enregistrée via la chaîne de
- formatage <code>%{c}a</code>.
- </p>
+ utilisée pour la fonctionnalité <directive module="mod_authz_core"
+ name="require">Require ip</directive> de <module>mod_authz_host</module> ;
+ elle est aussi affichée par <module>mod_status</module>, et enregistrée via
+ les chaînes de formatage <code>%a</code> des modules
+ <module>mod_log_config</module> et <module>core</module>. L'adresse IP
+ client sous-jacente de la connexion est enregistrée via la chaîne de
+ formatage <code>%{c}a</code>. </p>
<note type="warning">Il est essentiel de n'activer cette
fonctionnalité que pour les requêtes en provenance des serveurs
@@ -66,6 +70,9 @@ répartiteur de charge via les en-têtes de la requête.
<seealso><module>mod_authz_host</module></seealso>
<seealso><module>mod_status</module></seealso>
<seealso><module>mod_log_config</module></seealso>
+<seealso><a
+href="http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt">Proxy Protocol
+Spec</a></seealso>
<section id="processing"><title>Traitement des adresses distantes</title>
@@ -251,6 +258,82 @@ RemoteIPProxiesHeader X-Forwarded-By
</directivesynopsis>
<directivesynopsis>
+<name>RemoteIPProxyProtocol</name>
+<description>Active ou désactive la gestion du protocole PROXY</description>
+<syntax>RemoteIPProxyProtocol On|Off</syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+<compatibility>Disponible à partir de la version 2.4.28 du serveur HTTP Apache</compatibility>
+
+<usage>
+ <p>La directive <directive>RemoteIPProxyProtocol</directive> permet
+ d'activer ou de désactiver la prise en compte et la gestion de l'en-tête de
+ connexion du protocole PROXY. Si elle est définie à <code>On</code>, la
+ demande du client <em>doit</em> envoyer l'en-tête approprié pour chaque
+ nouvelle connexion, sinon cette dernière sera fermée à moins qu'il ne fasse
+ partie de la liste, définie via la directive <directive
+ module="mod_remoteip">RemoteIPProxyProtocolDisableHosts</directive>, des
+ hôtes pour lesquels le protocole PROXY est désactivé.</p>
+
+ <p>Bien que cette directive peut être définie au niveau de n'importe quel
+ serveur virtuel, il est important de garder à l'esprit que, étant donné que
+ le protocole PROXY est basé sur la connexion et agnostique quant au
+ protocle, son activation/désactivation est basée sur le couple adresse
+ IP/port. Cela signifie que si plusieurs serveurs virtuels à base de nom sont
+ configurés avec le même couple adresse IP/port, et si vous activez le
+ protocole PROXY pour l'un d'entre eux, il le sera aussi pour tous les autres
+ (avec le même couple adresse IP/port). Cela signifie aussi que si vous
+ tentez d'activer le protocole PROXY pour un serveur virtuel et de le
+ désactiver pour un autre, cela ne marchera pas ; dans ce dernier cas, la
+ dernière directive l'emporte sur les autres et une notification sera
+ enregistrée dans le journal pour indiquer les réglages qui ont été annulés.</p>
+
+ <highlight language="config">
+Listen 80
+&lt;VirtualHost *:80&gt;
+ ServerName www.example.com
+ RemoteIPProxyProtocol On
+
+ #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+ #protocole PROXY. Si ce n'est pas le cas, la connexion sera fermée.
+&lt;/VirtualHost&gt;
+
+Listen 8080
+&lt;VirtualHost *:8080&gt;
+ ServerName www.example.com
+ RemoteIPProxyProtocol On
+ RemoteIPProxyProtocolExceptions 127.0.0.1 10.0.0.0/8
+
+ #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+ #protocole PROXY. Si ce n'est pas le cas, la connexion sera fermée à moins
+ que sa source ne soit localhost ou la gamme d'adresses RFC1918 10.x.x.x
+&lt;/VirtualHost&gt;
+ </highlight>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>RemoteIPProxyProtocolExceptions</name>
+<description>Désactive la prise en compte de l'en-tête PROXY pour certains hôtes
+ou réseaux</description>
+<syntax>RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+<compatibility>RemoteIPProxyProtocolExceptions est disponible à partir de la
+version 2.4.28 du serveur HTTP Apache</compatibility>
+
+<usage>
+ <p>La directive <directive>RemoteIPProxyProtocol</directive> permet de
+ contrôler la prise en compte de l'en-tête de connexion du protocole PROXY.
+ Il est parfois souhaitable d'exiger pour certains clients la
+ présence de l'en-tête PROXY, mais aussi de permettre aux autres clients de
+ se connecter sans ce dernier. Cette directive permet à l'administrateur du
+ serveur d'autoriser cette possibilité à un hôte isolé ou à une gamme d'hôtes
+ au format CIDR.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
<name>RemoteIPTrustedProxy</name>
<description>Déclare les adresses IP clientes de l'intranet dignes de
confiance pour présenter la valeur RemoteIPHeader</description>
diff --git a/docs/manual/mod/mod_ssl.html.en b/docs/manual/mod/mod_ssl.html.en
index 730dc3a9a0..2fa37d4a7b 100644
--- a/docs/manual/mod/mod_ssl.html.en
+++ b/docs/manual/mod/mod_ssl.html.en
@@ -1504,7 +1504,8 @@ The available (case-insensitive) <em>protocol</em>s are:</p>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded CA Certificates
for Remote Server Auth</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCACertificateFile <em>file-path</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1525,7 +1526,8 @@ preference. This can be used alternatively and/or additionally to
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory of PEM-encoded CA Certificates for
Remote Server Auth</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCACertificatePath <em>directory-path</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1549,7 +1551,8 @@ contains the appropriate symbolic links.</p>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable CRL-based revocation checking for Remote Server Auth</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCARevocationCheck chain|leaf|none</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyCARevocationCheck none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1586,7 +1589,8 @@ to succeed - otherwise it will fail with an
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded CA CRLs for
Remote Server Auth</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCARevocationFile <em>file-path</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1607,7 +1611,8 @@ used alternatively and/or additionally to <code class="directive"><a href="#sslp
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory of PEM-encoded CA CRLs for
Remote Server Auth</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCARevocationPath <em>directory-path</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1632,7 +1637,8 @@ contains the appropriate symbolic links.</p>
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCheckPeerCN on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyCheckPeerCN on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1673,7 +1679,8 @@ SSLProxyCheckPeerName off</pre>
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCheckPeerExpire on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyCheckPeerExpire on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1693,7 +1700,8 @@ sent.
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCheckPeerName on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyCheckPeerName on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Apache HTTP Server 2.4.5 and later</td></tr>
@@ -1733,8 +1741,8 @@ improvements.
proxy handshake</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyCipherSuite <em>cipher-spec</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1750,7 +1758,8 @@ for additional information.</p>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>SSL Proxy Engine Operation Switch</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyEngine on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyEngine off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1779,7 +1788,7 @@ server to proxy SSL/TLS requests.</p>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyMachineCertificateChainFile <em>filename</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1808,7 +1817,7 @@ SSLProxyCACertificateFile</a></code>.</p>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyMachineCertificateFile <em>filename</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1833,7 +1842,7 @@ or additionally to <code>SSLProxyMachineCertificatePath</code>.
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyMachineCertificatePath <em>directory</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1858,8 +1867,8 @@ directory contains the appropriate symbolic links.</p>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure usable SSL protocol flavors for proxy usage</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyProtocol [+|-]<em>protocol</em> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyProtocol all -SSLv3 (up to 2.4.16: all)</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1879,7 +1888,8 @@ for additional information.
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Type of remote server Certificate verification</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyVerify <em>level</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyVerify none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1916,7 +1926,8 @@ authentication (but can be used to establish SSL test pages, etc.)</p>
Certificate verification</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSLProxyVerifyDepth <em>number</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSLProxyVerifyDepth 1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, proxy section</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
diff --git a/docs/manual/mod/mod_ssl.html.fr b/docs/manual/mod/mod_ssl.html.fr
index 33ee57be87..675a902acb 100644
--- a/docs/manual/mod/mod_ssl.html.fr
+++ b/docs/manual/mod/mod_ssl.html.fr
@@ -1690,7 +1690,8 @@ casse) :</p>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concaténation des certificats de CA
codés en PEM pour l'authentification des serveurs distants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCACertificateFile <em>file-path</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Not applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1713,7 +1714,8 @@ la place et/ou en complément de la directive <code class="directive"><a href="#s
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire des certificats de CA codés en PEM pour
l'authentification des serveurs distants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCACertificatePath <em>chemin-répertoire</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1741,7 +1743,8 @@ assurer que ce répertoire contient les liens symboliques appropriés.</p>
pour l'authentification du serveur distant</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationCheck chain|leaf|none</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCARevocationCheck none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1778,7 +1781,8 @@ erreur <code>"CRL introuvable"</code>.
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concaténation des CRLs de CA codés en
PEM pour l'authentification des serveurs distants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationFile <em>chemin-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1802,7 +1806,8 @@ directive <code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCA
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire des CRLs de CA codés en PEM pour
l'authentification des serveurs distants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationPath <em>chemin-répertoire</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1831,7 +1836,8 @@ du serveur distant
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerCN on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCheckPeerCN on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1873,7 +1879,8 @@ certificat du serveur distant
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerExpire on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCheckPeerExpire on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1894,7 +1901,8 @@ certificats serveur distants
</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerName on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCheckPeerName on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur HTTP
@@ -1936,8 +1944,8 @@ comportement original et des détails à propos de ces améliorations.
lors de l'initialisation d'une connexion SSL de mandataire</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCipherSuite <em>algorithmes</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1952,7 +1960,8 @@ mandataire. Veuillez vous reporter à la directive <code class="directive"><a hre
SSL</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyEngine on|off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyEngine off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -1985,7 +1994,7 @@ serveur mandataire direct pour les requêtes SSL/TLS.</p>
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier de certificats de CA encodés PEM concaténés permettant au
mandataire de choisir un certificat</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificateChainFile <em>nom-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -2018,7 +2027,7 @@ fichier spécifié seront considérés comme étant de confiance, comme s'ils
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concaténation des clés et certificats
clients codés en PEM que le mandataire doit utiliser</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificateFile <em>chemin-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -2047,7 +2056,7 @@ directive s'utilise à la place ou en complément de la directive
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire des clés et certificats clients codés en PEM que
le mandataire doit utiliser</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificatePath <em>chemin-répertoire</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -2075,8 +2084,8 @@ assurer que ce répertoire contient les liens symboliques appropriés.</p>
mandataire</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyProtocol [+|-]<em>protocole</em> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyProtocol all -SSLv3 (jusqu'à la version 2.4.16: all)</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -2097,7 +2106,8 @@ des protocoles spécifiés.</p>
distant</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyVerify <em>niveau</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyVerify none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
@@ -2137,8 +2147,8 @@ même être utilisé pour établir des pages de test SSL, etc...).</p>
lors de la vérification du certificat du serveur distant</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyVerifyDepth <em>niveau</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyVerifyDepth 1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, </td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Non applicable</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
</table>
diff --git a/docs/manual/mod/mod_ssl.xml.fr b/docs/manual/mod/mod_ssl.xml.fr
index 42066dc720..e89d5a41fb 100644
--- a/docs/manual/mod/mod_ssl.xml.fr
+++ b/docs/manual/mod/mod_ssl.xml.fr
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1816356 -->
+<!-- English Revision: 1824187 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
@@ -1972,7 +1972,8 @@ SSLStrictSNIVHostCheck on
<description>Répertoire des clés et certificats clients codés en PEM que
le mandataire doit utiliser</description>
<syntax>SSLProxyMachineCertificatePath <em>chemin-répertoire</em></syntax>
-<contextlist><context>server config</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
<usage>
<p>
@@ -2002,7 +2003,8 @@ SSLProxyMachineCertificatePath "/usr/local/apache2/conf/proxy.crt/"
<description>Fichier contenant la concaténation des clés et certificats
clients codés en PEM que le mandataire doit utiliser</description>
<syntax>SSLProxyMachineCertificateFile <em>chemin-fichier</em></syntax>
-<contextlist><context>server config</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
<usage>
<p>
@@ -2033,7 +2035,8 @@ SSLProxyMachineCertificateFile
<description>Fichier de certificats de CA encodés PEM concaténés permettant au
mandataire de choisir un certificat</description>
<syntax>SSLProxyMachineCertificateChainFile <em>nom-fichier</em></syntax>
-<contextlist><context>server config</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
<usage>
<p>
@@ -2070,8 +2073,9 @@ SSLProxyMachineCertificateChainFile
distant</description>
<syntax>SSLProxyVerify <em>niveau</em></syntax>
<default>SSLProxyVerify none</default>
-<contextlist><context>server config</context>
-<context>virtual host</context> </contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
@@ -2113,9 +2117,9 @@ SSLProxyVerify require
lors de la vérification du certificat du serveur distant</description>
<syntax>SSLProxyVerifyDepth <em>niveau</em></syntax>
<default>SSLProxyVerifyDepth 1</default>
-<contextlist><context>server config</context>
-<context>virtual host</context> </contextlist>
-<override>AuthConfig</override>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<p>
@@ -2149,8 +2153,9 @@ certificat du serveur distant
</description>
<syntax>SSLProxyCheckPeerExpire on|off</syntax>
<default>SSLProxyCheckPeerExpire on</default>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<p>
@@ -2173,8 +2178,9 @@ du serveur distant
</description>
<syntax>SSLProxyCheckPeerCN on|off</syntax>
<default>SSLProxyCheckPeerCN on</default>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<p>
@@ -2219,8 +2225,9 @@ certificats serveur distants
</description>
<syntax>SSLProxyCheckPeerName on|off</syntax>
<default>SSLProxyCheckPeerName on</default>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<compatibility>Disponible à partir de la version 2.4.5 du serveur HTTP
Apache</compatibility>
<usage>
@@ -2260,8 +2267,9 @@ comportement original et des détails à propos de ces améliorations.
SSL</description>
<syntax>SSLProxyEngine on|off</syntax>
<default>SSLProxyEngine off</default>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<p>
@@ -2300,9 +2308,9 @@ serveur mandataire direct pour les requêtes SSL/TLS.</p>
mandataire</description>
<syntax>SSLProxyProtocol [+|-]<em>protocole</em> ...</syntax>
<default>SSLProxyProtocol all -SSLv3 (jusqu'à la version 2.4.16: all)</default>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
-<override>Options</override>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<!-- XXX Why does this have an override and not .htaccess context? -->
@@ -2323,11 +2331,9 @@ module="mod_ssl">SSLProtocol</directive> pour plus d'informations.
lors de l'initialisation d'une connexion SSL de mandataire</description>
<syntax>SSLProxyCipherSuite <em>algorithmes</em></syntax>
<default>SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP</default>
-<contextlist><context>server config</context>
-<context>virtual host</context>
-<context>directory</context>
-<context>.htaccess</context></contextlist>
-<override>AuthConfig</override>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<p>Cette directive est équivalente à la directive <directive
module="mod_ssl">SSLCipherSuite</directive>, mais s'applique à une connexion de
@@ -2341,8 +2347,9 @@ module="mod_ssl">SSLCipherSuite</directive> pour plus d'informations.</p>
<description>Répertoire des certificats de CA codés en PEM pour
l'authentification des serveurs distants</description>
<syntax>SSLProxyCACertificatePath <em>chemin-répertoire</em></syntax>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<p>
@@ -2371,8 +2378,9 @@ SSLProxyCACertificatePath "/usr/local/apache2/conf/ssl.crt/"
<description>Fichier contenant la concaténation des certificats de CA
codés en PEM pour l'authentification des serveurs distants</description>
<syntax>SSLProxyCACertificateFile <em>file-path</em></syntax>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Not applicable</override>
<usage>
<p>
@@ -2398,8 +2406,9 @@ SSLProxyCACertificateFile
<description>Répertoire des CRLs de CA codés en PEM pour
l'authentification des serveurs distants</description>
<syntax>SSLProxyCARevocationPath <em>chemin-répertoire</em></syntax>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<p>
@@ -2428,8 +2437,9 @@ SSLProxyCARevocationPath "/usr/local/apache2/conf/ssl.crl/"
<description>Fichier contenant la concaténation des CRLs de CA codés en
PEM pour l'authentification des serveurs distants</description>
<syntax>SSLProxyCARevocationFile <em>chemin-fichier</em></syntax>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<p>
@@ -2457,8 +2467,9 @@ SSLProxyCARevocationFile
pour l'authentification du serveur distant</description>
<syntax>SSLProxyCARevocationCheck chain|leaf|none</syntax>
<default>SSLProxyCARevocationCheck none</default>
-<contextlist><context>server config</context>
-<context>virtual host</context></contextlist>
+<contextlist><context>server config</context> <context>virtual host</context>
+<context>proxy section</context></contextlist>
+<override>Non applicable</override>
<usage>
<p>
diff --git a/docs/manual/mod/overrides.html.en b/docs/manual/mod/overrides.html.en
index 20b84da9b9..ee5389e5ff 100644
--- a/docs/manual/mod/overrides.html.en
+++ b/docs/manual/mod/overrides.html.en
@@ -351,23 +351,20 @@ user authentication</td></tr>
<tr><td><a href="mod_ssl.html#sslciphersuite">SSLCipherSuite</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
<tr><td colspan="2" class="descr">Cipher Suite available for negotiation in SSL
handshake</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
-<tr class="odd"><td colspan="2" class="descr">Cipher Suite available for negotiation in SSL
-proxy handshake</td></tr>
-<tr><td><a href="mod_ssl.html#sslrenegbuffersize">SSLRenegBufferSize</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
-<tr><td colspan="2" class="descr">Set the size for the SSL renegotiation buffer</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslrequire">SSLRequire</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
-<tr class="odd"><td colspan="2" class="descr">Allow access only when an arbitrarily complex
+<tr class="odd"><td><a href="mod_ssl.html#sslrenegbuffersize">SSLRenegBufferSize</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">Set the size for the SSL renegotiation buffer</td></tr>
+<tr><td><a href="mod_ssl.html#sslrequire">SSLRequire</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">Allow access only when an arbitrarily complex
boolean expression is true</td></tr>
-<tr><td><a href="mod_ssl.html#sslrequiressl">SSLRequireSSL</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
-<tr><td colspan="2" class="descr">Deny access when SSL is not used for the
+<tr class="odd"><td><a href="mod_ssl.html#sslrequiressl">SSLRequireSSL</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">Deny access when SSL is not used for the
HTTP request</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslusername">SSLUserName</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
-<tr class="odd"><td colspan="2" class="descr">Variable name to determine user name</td></tr>
-<tr><td><a href="mod_ssl.html#sslverifyclient">SSLVerifyClient</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
-<tr><td colspan="2" class="descr">Type of Client Certificate verification</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslverifydepth">SSLVerifyDepth</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
-<tr class="odd"><td colspan="2" class="descr">Maximum depth of CA Certificates in Client
+<tr><td><a href="mod_ssl.html#sslusername">SSLUserName</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">Variable name to determine user name</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslverifyclient">SSLVerifyClient</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">Type of Client Certificate verification</td></tr>
+<tr><td><a href="mod_ssl.html#sslverifydepth">SSLVerifyDepth</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">Maximum depth of CA Certificates in Client
Certificate verification</td></tr>
</table></div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a name="override-fileinfo">FileInfo</a></h2>
<p>
@@ -672,6 +669,48 @@ except the named ones</td></tr>
<tr><td colspan="2" class="descr">Controls the default access state and the order in which
<code class="directive">Allow</code> and <code class="directive">Deny</code> are
evaluated.</td></tr>
+</table></div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a name="override-not applicable">Not applicable</a></h2>
+ <p><em>
+ [This section has no description. It's possible that the documentation is
+ incomplete, or that the directives here have an incorrect or misspelled
+ Override type. Please consider reporting this in the
+ <a href="#comments_section">comments section</a>.]
+ </em></p>
+ <table class="qref"><tr><td><a href="mod_ssl.html#sslproxycacertificatefile">SSLProxyCACertificateFile</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">File of concatenated PEM-encoded CA Certificates
+for Remote Server Auth</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxycacertificatepath">SSLProxyCACertificatePath</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">Directory of PEM-encoded CA Certificates for
+Remote Server Auth</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxycarevocationcheck">SSLProxyCARevocationCheck</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">Enable CRL-based revocation checking for Remote Server Auth</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxycarevocationfile">SSLProxyCARevocationFile</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">File of concatenated PEM-encoded CA CRLs for
+Remote Server Auth</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxycarevocationpath">SSLProxyCARevocationPath</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">Directory of PEM-encoded CA CRLs for
+Remote Server Auth</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">Whether to check the remote server certificate's CN field
+</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxycheckpeerexpire">SSLProxyCheckPeerExpire</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">Whether to check if remote server certificate is expired
+</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">Configure host name checking for remote server certificates
+</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">Cipher Suite available for negotiation in SSL
+proxy handshake</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">SSL Proxy Engine Operation Switch</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">Configure usable SSL protocol flavors for proxy usage</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyverify">SSLProxyVerify</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr class="odd"><td colspan="2" class="descr">Type of remote server Certificate verification</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxyverifydepth">SSLProxyVerifyDepth</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
+<tr><td colspan="2" class="descr">Maximum depth of CA Certificates in Remote Server
+Certificate verification</td></tr>
</table></div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a name="override-options">Options</a></h2>
<p>
The following directives are allowed in .htaccess files when
@@ -702,10 +741,8 @@ directory</td></tr>
<tr><td colspan="2" class="descr">Reflect an input header to the output headers</td></tr>
<tr class="odd"><td><a href="mod_ssl.html#ssloptions">SSLOptions</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
<tr class="odd"><td colspan="2" class="descr">Configure various SSL engine run-time options</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol</a></td><td class="module"><a href="mod_ssl.html">mod_ssl</a></td></tr>
-<tr><td colspan="2" class="descr">Configure usable SSL protocol flavors for proxy usage</td></tr>
-<tr class="odd"><td><a href="mod_include.html#xbithack">XBitHack</a></td><td class="module"><a href="mod_include.html">mod_include</a></td></tr>
-<tr class="odd"><td colspan="2" class="descr">Parse SSI directives in files with the execute bit
+<tr><td><a href="mod_include.html#xbithack">XBitHack</a></td><td class="module"><a href="mod_include.html">mod_include</a></td></tr>
+<tr><td colspan="2" class="descr">Parse SSI directives in files with the execute bit
set</td></tr>
</table></div></div></div><div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/overrides.html" title="English">&nbsp;en&nbsp;</a></p>
diff --git a/docs/manual/mod/quickreference.html.de b/docs/manual/mod/quickreference.html.de
index 1e0b906efe..f0d9dc30aa 100644
--- a/docs/manual/mod/quickreference.html.de
+++ b/docs/manual/mod/quickreference.html.de
@@ -56,6 +56,7 @@
<tr><th>v</th><td>Virtual Host</td></tr>
<tr><th>d</th><td>Verzeichnis</td></tr>
<tr><th>h</th><td>.htaccess</td></tr>
+<tr><th /><td /></tr>
</table></td>
<td><table><tr><th>C</th><td>Core</td></tr>
<tr><th>M</th><td>MPM</td></tr>
@@ -839,6 +840,8 @@ a different URL</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader <var>HeaderFieldName</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare the header field which will record all intermediate IP addresses</td></tr>
+<tr class="odd"><td><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol On|Off</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Enable or disable PROXY protocol handling</td></tr>
+<tr><td><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Disable processing of PROXY header for certain hosts or networks</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_mime.html#removecharset">RemoveCharset <var>extension</var> [<var>extension</var>]
@@ -1045,12 +1048,12 @@ Remote Server Auth</td></tr>
</td></tr>
<tr><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName on|off</a></td><td> on </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure host name checking for remote server certificates
</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
proxy handshake</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine on|off</a></td><td> off </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">SSL Proxy Engine Operation Switch</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol [+|-]<em>protocol</em> ...</a></td><td> all -SSLv3 (up to 2 +</td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure usable SSL protocol flavors for proxy usage</td></tr>
<tr class="odd"><td><a href="mod_ssl.html#sslproxyverify">SSLProxyVerify <em>level</em></a></td><td> none </td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Type of remote server Certificate verification</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyverifydepth">SSLProxyVerifyDepth <em>number</em></a></td><td> 1 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum depth of CA Certificates in Remote Server
diff --git a/docs/manual/mod/quickreference.html.en b/docs/manual/mod/quickreference.html.en
index 7c840f1ea1..3865c8c864 100644
--- a/docs/manual/mod/quickreference.html.en
+++ b/docs/manual/mod/quickreference.html.en
@@ -54,6 +54,7 @@
<tr><th>v</th><td>virtual host</td></tr>
<tr><th>d</th><td>directory</td></tr>
<tr><th>h</th><td>.htaccess</td></tr>
+<tr><th>p</th><td>proxy section</td></tr>
</table></td>
<td><table><tr><th>C</th><td>Core</td></tr>
<tr><th>M</th><td>MPM</td></tr>
@@ -831,6 +832,8 @@ a different URL</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader <var>HeaderFieldName</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare the header field which will record all intermediate IP addresses</td></tr>
+<tr class="odd"><td><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol On|Off</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Enable or disable PROXY protocol handling</td></tr>
+<tr><td><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Disable processing of PROXY header for certain hosts or networks</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_mime.html#removecharset">RemoveCharset <var>extension</var> [<var>extension</var>]
@@ -1018,30 +1021,30 @@ handshake</td></tr>
<tr class="odd"><td><a href="mod_ssl.html#sslpassphrasedialog">SSLPassPhraseDialog <em>type</em></a></td><td> builtin </td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Type of pass phrase dialog for encrypted private
keys</td></tr>
<tr><td><a href="mod_ssl.html#sslprotocol">SSLProtocol [+|-]<em>protocol</em> ...</a></td><td> all -SSLv3 (up to 2 +</td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure usable SSL/TLS protocol versions</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxycacertificatefile">SSLProxyCACertificateFile <em>file-path</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA Certificates
+<tr class="odd"><td><a href="mod_ssl.html#sslproxycacertificatefile">SSLProxyCACertificateFile <em>file-path</em></a></td><td></td><td>svp</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA Certificates
for Remote Server Auth</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxycacertificatepath">SSLProxyCACertificatePath <em>directory-path</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Directory of PEM-encoded CA Certificates for
+<tr><td><a href="mod_ssl.html#sslproxycacertificatepath">SSLProxyCACertificatePath <em>directory-path</em></a></td><td></td><td>svp</td><td>E</td></tr><tr><td class="descr" colspan="4">Directory of PEM-encoded CA Certificates for
Remote Server Auth</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxycarevocationcheck">SSLProxyCARevocationCheck chain|leaf|none</a></td><td> none </td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Enable CRL-based revocation checking for Remote Server Auth</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxycarevocationfile">SSLProxyCARevocationFile <em>file-path</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded CA CRLs for
+<tr class="odd"><td><a href="mod_ssl.html#sslproxycarevocationcheck">SSLProxyCARevocationCheck chain|leaf|none</a></td><td> none </td><td>svp</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Enable CRL-based revocation checking for Remote Server Auth</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxycarevocationfile">SSLProxyCARevocationFile <em>file-path</em></a></td><td></td><td>svp</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded CA CRLs for
Remote Server Auth</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxycarevocationpath">SSLProxyCARevocationPath <em>directory-path</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded CA CRLs for
+<tr class="odd"><td><a href="mod_ssl.html#sslproxycarevocationpath">SSLProxyCARevocationPath <em>directory-path</em></a></td><td></td><td>svp</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded CA CRLs for
Remote Server Auth</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxycheckpeercn">SSLProxyCheckPeerCN on|off</a></td><td> on </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Whether to check the remote server certificate's CN field
+<tr><td><a href="mod_ssl.html#sslproxycheckpeercn">SSLProxyCheckPeerCN on|off</a></td><td> on </td><td>svp</td><td>E</td></tr><tr><td class="descr" colspan="4">Whether to check the remote server certificate's CN field
</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxycheckpeerexpire">SSLProxyCheckPeerExpire on|off</a></td><td> on </td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Whether to check if remote server certificate is expired
+<tr class="odd"><td><a href="mod_ssl.html#sslproxycheckpeerexpire">SSLProxyCheckPeerExpire on|off</a></td><td> on </td><td>svp</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Whether to check if remote server certificate is expired
</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName on|off</a></td><td> on </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure host name checking for remote server certificates
+<tr><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName on|off</a></td><td> on </td><td>svp</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure host name checking for remote server certificates
</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>svp</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
proxy handshake</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine on|off</a></td><td> off </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">SSL Proxy Engine Operation Switch</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol [+|-]<em>protocol</em> ...</a></td><td> all -SSLv3 (up to 2 +</td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure usable SSL protocol flavors for proxy usage</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyverify">SSLProxyVerify <em>level</em></a></td><td> none </td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Type of remote server Certificate verification</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxyverifydepth">SSLProxyVerifyDepth <em>number</em></a></td><td> 1 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum depth of CA Certificates in Remote Server
+<tr><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine on|off</a></td><td> off </td><td>svp</td><td>E</td></tr><tr><td class="descr" colspan="4">SSL Proxy Engine Operation Switch</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>svp</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>svp</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>svp</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol [+|-]<em>protocol</em> ...</a></td><td> all -SSLv3 (up to 2 +</td><td>svp</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure usable SSL protocol flavors for proxy usage</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyverify">SSLProxyVerify <em>level</em></a></td><td> none </td><td>svp</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Type of remote server Certificate verification</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxyverifydepth">SSLProxyVerifyDepth <em>number</em></a></td><td> 1 </td><td>svp</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum depth of CA Certificates in Remote Server
Certificate verification</td></tr>
<tr class="odd"><td><a href="mod_ssl.html#sslrandomseed">SSLRandomSeed <em>context</em> <em>source</em>
[<em>bytes</em>]</a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Pseudo Random Number Generator (PRNG) seeding
diff --git a/docs/manual/mod/quickreference.html.es b/docs/manual/mod/quickreference.html.es
index a05d35404c..549ebbb4a9 100644
--- a/docs/manual/mod/quickreference.html.es
+++ b/docs/manual/mod/quickreference.html.es
@@ -57,6 +57,7 @@
<tr><th>v</th><td>virtual host</td></tr>
<tr><th>d</th><td>directorio</td></tr>
<tr><th>h</th><td>.htaccess</td></tr>
+<tr><th /><td /></tr>
</table></td>
<td><table><tr><th>C</th><td>Core</td></tr>
<tr><th>M</th><td>MPM</td></tr>
@@ -834,6 +835,8 @@ a different URL</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader <var>HeaderFieldName</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare the header field which will record all intermediate IP addresses</td></tr>
+<tr class="odd"><td><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol On|Off</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Enable or disable PROXY protocol handling</td></tr>
+<tr><td><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Disable processing of PROXY header for certain hosts or networks</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_mime.html#removecharset">RemoveCharset <var>extension</var> [<var>extension</var>]
@@ -1036,12 +1039,12 @@ Remote Server Auth</td></tr>
</td></tr>
<tr><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName on|off</a></td><td> on </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure host name checking for remote server certificates
</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
proxy handshake</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine on|off</a></td><td> off </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">SSL Proxy Engine Operation Switch</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol [+|-]<em>protocol</em> ...</a></td><td> all -SSLv3 (up to 2 +</td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure usable SSL protocol flavors for proxy usage</td></tr>
<tr class="odd"><td><a href="mod_ssl.html#sslproxyverify">SSLProxyVerify <em>level</em></a></td><td> none </td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Type of remote server Certificate verification</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyverifydepth">SSLProxyVerifyDepth <em>number</em></a></td><td> 1 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum depth of CA Certificates in Remote Server
diff --git a/docs/manual/mod/quickreference.html.fr b/docs/manual/mod/quickreference.html.fr
index 65097d3789..40e54985ec 100644
--- a/docs/manual/mod/quickreference.html.fr
+++ b/docs/manual/mod/quickreference.html.fr
@@ -56,6 +56,7 @@
<tr><th>v</th><td>serveur virtuel</td></tr>
<tr><th>d</th><td>répertoire</td></tr>
<tr><th>h</th><td>.htaccess</td></tr>
+<tr><th /><td /></tr>
</table></td>
<td><table><tr><th>C</th><td>Core</td></tr>
<tr><th>M</th><td>MPM</td></tr>
@@ -1042,6 +1043,9 @@ confiance pour présenter la valeur RemoteIPHeader</td></tr>
confiance pour présenter la valeur RemoteIPHeader</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader <var>Nom_en-tête</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Déclare le champ d'en-tête qui contiendra toutes les
adresses IP intermédiaires</td></tr>
+<tr class="odd"><td><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol On|Off</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Active ou désactive la gestion du protocole PROXY</td></tr>
+<tr><td><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Désactive la prise en compte de l'en-tête PROXY pour certains hôtes
+ou réseaux</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy
<var>ip-mandataire</var>|<var>ip-mandataire/sous-réseau</var>|<var>nom-hôte</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Déclare les adresses IP clientes de l'intranet dignes de
confiance pour présenter la valeur RemoteIPHeader</td></tr>
@@ -1301,15 +1305,15 @@ certificat du serveur distant
<tr><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName on|off</a></td><td> on </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure la vérification du nom d'hôte dans les
certificats serveur distants
</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>algorithmes</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Algorithmes de chiffrement disponibles pour la négociation
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>algorithmes</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Algorithmes de chiffrement disponibles pour la négociation
lors de l'initialisation d'une connexion SSL de mandataire</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine on|off</a></td><td> off </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Interrupteur marche/arrêt du moteur de mandataire
SSL</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>nom-fichier</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Fichier de certificats de CA encodés PEM concaténés permettant au
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>nom-fichier</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Fichier de certificats de CA encodés PEM concaténés permettant au
mandataire de choisir un certificat</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>chemin-fichier</em></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">Fichier contenant la concaténation des clés et certificats
+<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>chemin-fichier</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Fichier contenant la concaténation des clés et certificats
clients codés en PEM que le mandataire doit utiliser</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>chemin-répertoire</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Répertoire des clés et certificats clients codés en PEM que
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>chemin-répertoire</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Répertoire des clés et certificats clients codés en PEM que
le mandataire doit utiliser</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol [+|-]<em>protocole</em> ...</a></td><td> all -SSLv3 (jusqu'à +</td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Définit les protocoles SSL disponibles pour la fonction de
mandataire</td></tr>
diff --git a/docs/manual/mod/quickreference.html.ja.utf8 b/docs/manual/mod/quickreference.html.ja.utf8
index 3277d3732b..20a0e314ec 100644
--- a/docs/manual/mod/quickreference.html.ja.utf8
+++ b/docs/manual/mod/quickreference.html.ja.utf8
@@ -56,6 +56,7 @@
<tr><th>v</th><td>ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆ</td></tr>
<tr><th>d</th><td>ディレクトリ</td></tr>
<tr><th>h</th><td>.htaccess</td></tr>
+<tr><th /><td /></tr>
</table></td>
<td><table><tr><th>C</th><td>Core</td></tr>
<tr><th>M</th><td>MPM</td></tr>
@@ -780,6 +781,8 @@ header</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader <var>HeaderFieldName</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare the header field which will record all intermediate IP addresses</td></tr>
+<tr class="odd"><td><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol On|Off</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Enable or disable PROXY protocol handling</td></tr>
+<tr><td><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Disable processing of PROXY header for certain hosts or networks</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_mime.html#removecharset">RemoveCharset <var>extension</var> [<var>extension</var>]
@@ -963,12 +966,12 @@ Remote Server Auth</td></tr>
</td></tr>
<tr><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName on|off</a></td><td> on </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure host name checking for remote server certificates
</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
proxy handshake</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine on|off</a></td><td> off </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">SSL Proxy Engine Operation Switch</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol [+|-]<em>protocol</em> ...</a></td><td> all -SSLv3 (up to 2 +</td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure usable SSL protocol flavors for proxy usage</td></tr>
<tr class="odd"><td><a href="mod_ssl.html#sslproxyverify">SSLProxyVerify <em>level</em></a></td><td> none </td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Type of remote server Certificate verification</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyverifydepth">SSLProxyVerifyDepth <em>number</em></a></td><td> 1 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum depth of CA Certificates in Remote Server
diff --git a/docs/manual/mod/quickreference.html.ko.euc-kr b/docs/manual/mod/quickreference.html.ko.euc-kr
index 5138087867..0447d5a846 100644
--- a/docs/manual/mod/quickreference.html.ko.euc-kr
+++ b/docs/manual/mod/quickreference.html.ko.euc-kr
@@ -53,6 +53,7 @@
<tr><th>v</th><td>°¡»óÈ£½ºÆ®</td></tr>
<tr><th>d</th><td>directory</td></tr>
<tr><th>h</th><td>.htaccess</td></tr>
+<tr><th /><td /></tr>
</table></td>
<td><table><tr><th>C</th><td>Core</td></tr>
<tr><th>M</th><td>MPM</td></tr>
@@ -797,6 +798,8 @@ header for proxied requests</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader <var>HeaderFieldName</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare the header field which will record all intermediate IP addresses</td></tr>
+<tr class="odd"><td><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol On|Off</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Enable or disable PROXY protocol handling</td></tr>
+<tr><td><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Disable processing of PROXY header for certain hosts or networks</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_mime.html#removecharset">RemoveCharset <var>extension</var> [<var>extension</var>]
@@ -992,12 +995,12 @@ Remote Server Auth</td></tr>
</td></tr>
<tr><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName on|off</a></td><td> on </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure host name checking for remote server certificates
</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
proxy handshake</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine on|off</a></td><td> off </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">SSL Proxy Engine Operation Switch</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol [+|-]<em>protocol</em> ...</a></td><td> all -SSLv3 (up to 2 +</td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure usable SSL protocol flavors for proxy usage</td></tr>
<tr class="odd"><td><a href="mod_ssl.html#sslproxyverify">SSLProxyVerify <em>level</em></a></td><td> none </td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Type of remote server Certificate verification</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyverifydepth">SSLProxyVerifyDepth <em>number</em></a></td><td> 1 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum depth of CA Certificates in Remote Server
diff --git a/docs/manual/mod/quickreference.html.tr.utf8 b/docs/manual/mod/quickreference.html.tr.utf8
index 78987ea92b..49bcaeea7b 100644
--- a/docs/manual/mod/quickreference.html.tr.utf8
+++ b/docs/manual/mod/quickreference.html.tr.utf8
@@ -54,6 +54,7 @@
<tr><th>k</th><td>sanal konak</td></tr>
<tr><th>d</th><td>dizin</td></tr>
<tr><th>h</th><td>.htaccess</td></tr>
+<tr><th /><td /></tr>
</table></td>
<td><table><tr><th>Ç</th><td>Çekirdek</td></tr>
<tr><th>M</th><td>MPM</td></tr>
@@ -829,6 +830,8 @@ URL’ye yönlendirir.</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sk</td><td>T</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList <var>filename</var></a></td><td></td><td>sk</td><td>T</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader <var>HeaderFieldName</var></a></td><td></td><td>sk</td><td>T</td></tr><tr><td class="descr" colspan="4">Declare the header field which will record all intermediate IP addresses</td></tr>
+<tr class="odd"><td><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol On|Off</a></td><td></td><td>sk</td><td>T</td></tr><tr class="odd"><td class="descr" colspan="4">Enable or disable PROXY protocol handling</td></tr>
+<tr><td><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</a></td><td></td><td>sk</td><td>T</td></tr><tr><td class="descr" colspan="4">Disable processing of PROXY header for certain hosts or networks</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sk</td><td>T</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList <var>filename</var></a></td><td></td><td>sk</td><td>T</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_mime.html#removecharset">RemoveCharset <var>extension</var> [<var>extension</var>]
@@ -1030,12 +1033,12 @@ Remote Server Auth</td></tr>
</td></tr>
<tr><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName on|off</a></td><td> on </td><td>sk</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure host name checking for remote server certificates
</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>skdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>sk</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
proxy handshake</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine on|off</a></td><td> off </td><td>sk</td><td>E</td></tr><tr><td class="descr" colspan="4">SSL Proxy Engine Operation Switch</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>sk</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>sk</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>sk</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol [+|-]<em>protocol</em> ...</a></td><td> all -SSLv3 (up to 2 +</td><td>sk</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure usable SSL protocol flavors for proxy usage</td></tr>
<tr class="odd"><td><a href="mod_ssl.html#sslproxyverify">SSLProxyVerify <em>level</em></a></td><td> none </td><td>sk</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Type of remote server Certificate verification</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyverifydepth">SSLProxyVerifyDepth <em>number</em></a></td><td> 1 </td><td>sk</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum depth of CA Certificates in Remote Server
diff --git a/docs/manual/mod/quickreference.html.zh-cn.utf8 b/docs/manual/mod/quickreference.html.zh-cn.utf8
index c458e4b17a..0f012e91a1 100644
--- a/docs/manual/mod/quickreference.html.zh-cn.utf8
+++ b/docs/manual/mod/quickreference.html.zh-cn.utf8
@@ -49,6 +49,7 @@
<tr><th>v</th><td>虚拟主机</td></tr>
<tr><th>d</th><td>目录</td></tr>
<tr><th>h</th><td>.htaccess</td></tr>
+<tr><th /><td /></tr>
</table></td>
<td><table><tr><th>C</th><td>核心</td></tr>
<tr><th>M</th><td>MPM</td></tr>
@@ -826,6 +827,8 @@ a different URL</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipinternalproxy">RemoteIPInternalProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteipinternalproxylist">RemoteIPInternalProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteipproxiesheader">RemoteIPProxiesHeader <var>HeaderFieldName</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare the header field which will record all intermediate IP addresses</td></tr>
+<tr class="odd"><td><a href="mod_remoteip.html#remoteipproxyprotocol">RemoteIPProxyProtocol On|Off</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Enable or disable PROXY protocol handling</td></tr>
+<tr><td><a href="mod_remoteip.html#remoteipproxyprotocolexceptions">RemoteIPProxyProtocolExceptions host|range [host|range] [host|range]</a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Disable processing of PROXY header for certain hosts or networks</td></tr>
<tr class="odd"><td><a href="mod_remoteip.html#remoteiptrustedproxy">RemoteIPTrustedProxy <var>proxy-ip</var>|<var>proxy-ip/subnet</var>|<var>hostname</var> ...</a></td><td></td><td>sv</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr><td><a href="mod_remoteip.html#remoteiptrustedproxylist">RemoteIPTrustedProxyList <var>filename</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Declare client intranet IP addresses trusted to present the RemoteIPHeader value</td></tr>
<tr class="odd"><td><a href="mod_mime.html#removecharset">RemoveCharset <var>extension</var> [<var>extension</var>]
@@ -1028,12 +1031,12 @@ Remote Server Auth</td></tr>
</td></tr>
<tr><td><a href="mod_ssl.html#sslproxycheckpeername">SSLProxyCheckPeerName on|off</a></td><td> on </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure host name checking for remote server certificates
</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>svdh</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
+<tr class="odd"><td><a href="mod_ssl.html#sslproxyciphersuite">SSLProxyCipherSuite <em>cipher-spec</em></a></td><td> ALL:!ADH:RC4+RSA:+H +</td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Cipher Suite available for negotiation in SSL
proxy handshake</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyengine">SSLProxyEngine on|off</a></td><td> off </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">SSL Proxy Engine Operation Switch</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
-<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>s</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
-<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>s</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatechainfile">SSLProxyMachineCertificateChainFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">File of concatenated PEM-encoded CA certificates to be used by the proxy for choosing a certificate</td></tr>
+<tr><td><a href="mod_ssl.html#sslproxymachinecertificatefile">SSLProxyMachineCertificateFile <em>filename</em></a></td><td></td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">File of concatenated PEM-encoded client certificates and keys to be used by the proxy</td></tr>
+<tr class="odd"><td><a href="mod_ssl.html#sslproxymachinecertificatepath">SSLProxyMachineCertificatePath <em>directory</em></a></td><td></td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Directory of PEM-encoded client certificates and keys to be used by the proxy</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyprotocol">SSLProxyProtocol [+|-]<em>protocol</em> ...</a></td><td> all -SSLv3 (up to 2 +</td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Configure usable SSL protocol flavors for proxy usage</td></tr>
<tr class="odd"><td><a href="mod_ssl.html#sslproxyverify">SSLProxyVerify <em>level</em></a></td><td> none </td><td>sv</td><td>E</td></tr><tr class="odd"><td class="descr" colspan="4">Type of remote server Certificate verification</td></tr>
<tr><td><a href="mod_ssl.html#sslproxyverifydepth">SSLProxyVerifyDepth <em>number</em></a></td><td> 1 </td><td>sv</td><td>E</td></tr><tr><td class="descr" colspan="4">Maximum depth of CA Certificates in Remote Server
diff --git a/docs/manual/sections.html.tr.utf8 b/docs/manual/sections.html.tr.utf8
index b18be77b1c..862bf9f9c8 100644
--- a/docs/manual/sections.html.tr.utf8
+++ b/docs/manual/sections.html.tr.utf8
@@ -29,6 +29,7 @@
<a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/sections.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
+<div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
<p><a href="configuring.html">Yapılandırma dosyaları</a>ndaki
yönergeler sunucunun tamamına uygulanacağı gibi sadece belli dizinler,
diff --git a/docs/manual/sitemap.html.de b/docs/manual/sitemap.html.de
index 36dc52b596..16b8742381 100644
--- a/docs/manual/sitemap.html.de
+++ b/docs/manual/sitemap.html.de
@@ -280,6 +280,7 @@ HPUX betreiben</a></li>
<li><a href="mod/mod_proxy_http.html">Apache-Modul mod_proxy_http</a></li>
<li><a href="mod/mod_proxy_http2.html">Apache-Modul mod_proxy_http2</a></li>
<li><a href="mod/mod_proxy_scgi.html">Apache-Modul mod_proxy_scgi</a></li>
+<li><a href="mod/mod_proxy_uwsgi.html">Apache-Modul mod_proxy_uwsgi</a></li>
<li><a href="mod/mod_proxy_wstunnel.html">Apache-Modul mod_proxy_wstunnel</a></li>
<li><a href="mod/mod_ratelimit.html">Apache-Modul mod_ratelimit</a></li>
<li><a href="mod/mod_reflector.html">Apache-Modul mod_reflector</a></li>
diff --git a/docs/manual/sitemap.html.en b/docs/manual/sitemap.html.en
index ba31666958..39e3aceb4d 100644
--- a/docs/manual/sitemap.html.en
+++ b/docs/manual/sitemap.html.en
@@ -279,6 +279,7 @@ log_server_status</a></li>
<li><a href="mod/mod_proxy_http.html">Apache Module mod_proxy_http</a></li>
<li><a href="mod/mod_proxy_http2.html">Apache Module mod_proxy_http2</a></li>
<li><a href="mod/mod_proxy_scgi.html">Apache Module mod_proxy_scgi</a></li>
+<li><a href="mod/mod_proxy_uwsgi.html">Apache Module mod_proxy_uwsgi</a></li>
<li><a href="mod/mod_proxy_wstunnel.html">Apache Module mod_proxy_wstunnel</a></li>
<li><a href="mod/mod_ratelimit.html">Apache Module mod_ratelimit</a></li>
<li><a href="mod/mod_reflector.html">Apache Module mod_reflector</a></li>
diff --git a/docs/manual/sitemap.html.es b/docs/manual/sitemap.html.es
index 5fd827a18d..0013111b03 100644
--- a/docs/manual/sitemap.html.es
+++ b/docs/manual/sitemap.html.es
@@ -259,6 +259,7 @@ usados para describir las directivas de Apache</a></li>
<li><a href="mod/mod_proxy_http.html">Módulo Apache mod_proxy_http</a></li>
<li><a href="mod/mod_proxy_http2.html">Módulo Apache mod_proxy_http2</a></li>
<li><a href="mod/mod_proxy_scgi.html">Módulo Apache mod_proxy_scgi</a></li>
+<li><a href="mod/mod_proxy_uwsgi.html">Módulo Apache mod_proxy_uwsgi</a></li>
<li><a href="mod/mod_proxy_wstunnel.html">Módulo Apache mod_proxy_wstunnel</a></li>
<li><a href="mod/mod_ratelimit.html">Módulo Apache mod_ratelimit</a></li>
<li><a href="mod/mod_reflector.html">Módulo Apache mod_reflector</a></li>
diff --git a/docs/manual/sitemap.html.fr b/docs/manual/sitemap.html.fr
index c2ea0c45ab..e84ddab89b 100644
--- a/docs/manual/sitemap.html.fr
+++ b/docs/manual/sitemap.html.fr
@@ -295,6 +295,7 @@ pour décrire les directives Apache</a></li>
<li><a href="mod/mod_proxy_http.html">Module Apache mod_proxy_http</a></li>
<li><a href="mod/mod_proxy_http2.html">Module Apache mod_proxy_http2</a></li>
<li><a href="mod/mod_proxy_scgi.html">Module Apache mod_proxy_scgi</a></li>
+<li><a href="mod/mod_proxy_uwsgi.html">Module Apache mod_proxy_uwsgi</a></li>
<li><a href="mod/mod_proxy_wstunnel.html">Module Apache mod_proxy_wstunnel</a></li>
<li><a href="mod/mod_ratelimit.html">Module Apache mod_ratelimit</a></li>
<li><a href="mod/mod_reflector.html">Module Apache mod_reflector</a></li>
diff --git a/docs/manual/sitemap.html.ja.utf8 b/docs/manual/sitemap.html.ja.utf8
index 54079545b9..bf61923cf8 100644
--- a/docs/manual/sitemap.html.ja.utf8
+++ b/docs/manual/sitemap.html.ja.utf8
@@ -258,6 +258,7 @@
<li><a href="mod/mod_proxy_http.html">Apache モジュール mod_proxy_http</a></li>
<li><a href="mod/mod_proxy_http2.html">Apache モジュール mod_proxy_http2</a></li>
<li><a href="mod/mod_proxy_scgi.html">Apache モジュール mod_proxy_scgi</a></li>
+<li><a href="mod/mod_proxy_uwsgi.html">Apache モジュール mod_proxy_uwsgi</a></li>
<li><a href="mod/mod_proxy_wstunnel.html">Apache モジュール mod_proxy_wstunnel</a></li>
<li><a href="mod/mod_ratelimit.html">Apache モジュール mod_ratelimit</a></li>
<li><a href="mod/mod_reflector.html">Apache モジュール mod_reflector</a></li>
diff --git a/docs/manual/sitemap.html.tr.utf8 b/docs/manual/sitemap.html.tr.utf8
index 21ebf0290b..0350d457c0 100644
--- a/docs/manual/sitemap.html.tr.utf8
+++ b/docs/manual/sitemap.html.tr.utf8
@@ -274,6 +274,7 @@ Windows ile Apache Kullanımı</a></li>
<li><a href="mod/mod_proxy_http.html">Apache Modülü mod_proxy_http</a></li>
<li><a href="mod/mod_proxy_http2.html">Apache Modülü mod_proxy_http2</a></li>
<li><a href="mod/mod_proxy_scgi.html">Apache Modülü mod_proxy_scgi</a></li>
+<li><a href="mod/mod_proxy_uwsgi.html">Apache Modülü mod_proxy_uwsgi</a></li>
<li><a href="mod/mod_proxy_wstunnel.html">Apache Modülü mod_proxy_wstunnel</a></li>
<li><a href="mod/mod_ratelimit.html">Apache Modülü mod_ratelimit</a></li>
<li><a href="mod/mod_reflector.html">Apache Modülü mod_reflector</a></li>
diff --git a/docs/manual/sitemap.html.zh-cn.utf8 b/docs/manual/sitemap.html.zh-cn.utf8
index fafa174013..fa54e77275 100644
--- a/docs/manual/sitemap.html.zh-cn.utf8
+++ b/docs/manual/sitemap.html.zh-cn.utf8
@@ -258,6 +258,7 @@
<li><a href="mod/mod_proxy_http.html">Apache æ¨¡å— mod_proxy_http</a></li>
<li><a href="mod/mod_proxy_http2.html">Apache æ¨¡å— mod_proxy_http2</a></li>
<li><a href="mod/mod_proxy_scgi.html">Apache æ¨¡å— mod_proxy_scgi</a></li>
+<li><a href="mod/mod_proxy_uwsgi.html">Apache æ¨¡å— mod_proxy_uwsgi</a></li>
<li><a href="mod/mod_proxy_wstunnel.html">Apache æ¨¡å— mod_proxy_wstunnel</a></li>
<li><a href="mod/mod_ratelimit.html">Apache æ¨¡å— mod_ratelimit</a></li>
<li><a href="mod/mod_reflector.html">Apache æ¨¡å— mod_reflector</a></li>
diff --git a/docs/manual/style/version.ent b/docs/manual/style/version.ent
index 653e41593f..f935b004ce 100644
--- a/docs/manual/style/version.ent
+++ b/docs/manual/style/version.ent
@@ -19,6 +19,6 @@
<!ENTITY httpd.major "2">
<!ENTITY httpd.minor "4">
-<!ENTITY httpd.patch "30">
+<!ENTITY httpd.patch "31">
<!ENTITY httpd.docs "2.4">
diff --git a/include/ap_mmn.h b/include/ap_mmn.h
index af3a8a5590..b18ea724bc 100644
--- a/include/ap_mmn.h
+++ b/include/ap_mmn.h
@@ -508,8 +508,9 @@
* 20120211.73 (2.4.30-dev) Add failontimeout_set, growth_set and lbmethod_set
* to proxy_balancer struct
* 20120211.74 (2.4.30-dev) Add AP_REG_DOLLAR_ENDONLY, ap_regcomp_get_default_cflags
- * ap_regcomp_set_default_cflags and
- * ap_regcomp_default_cflag_by_name
+ * ap_regcomp_set_default_cflags and
+ * ap_regcomp_default_cflag_by_name
+ * 20120211.75 (2.4.30-dev) Add hostname_ex to proxy_worker_shared
*/
#define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */
@@ -517,7 +518,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20120211
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 74 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 75 /* 0...n */
/**
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a
diff --git a/include/ap_release.h b/include/ap_release.h
index 9f26aeaace..2d6e35796e 100644
--- a/include/ap_release.h
+++ b/include/ap_release.h
@@ -43,7 +43,7 @@
#define AP_SERVER_MAJORVERSION_NUMBER 2
#define AP_SERVER_MINORVERSION_NUMBER 4
-#define AP_SERVER_PATCHLEVEL_NUMBER 30
+#define AP_SERVER_PATCHLEVEL_NUMBER 31
#define AP_SERVER_DEVBUILD_BOOLEAN 1
/* Synchronize the above with docs/manual/style/version.ent */
diff --git a/modules/metadata/mod_remoteip.dsp b/modules/metadata/mod_remoteip.dsp
index c59245d778..ee9b7e9444 100644
--- a/modules/metadata/mod_remoteip.dsp
+++ b/modules/metadata/mod_remoteip.dsp
@@ -52,8 +52,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_remoteip.so" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_remoteip.so" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so /opt:ref
+# ADD BASE LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /out:".\Release\mod_remoteip.so" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so
+# ADD LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Release\mod_remoteip.so" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so /opt:ref
# Begin Special Build Tool
TargetPath=.\Release\mod_remoteip.so
SOURCE="$(InputPath)"
@@ -84,8 +84,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_remoteip.so" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_remoteip.so" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so
+# ADD BASE LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_remoteip.so" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so
+# ADD LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /out:".\Debug\mod_remoteip.so" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so
# Begin Special Build Tool
TargetPath=.\Debug\mod_remoteip.so
SOURCE="$(InputPath)"
diff --git a/modules/metadata/mod_remoteip.mak b/modules/metadata/mod_remoteip.mak
index e6cacfb41d..9cbd4959cc 100644
--- a/modules/metadata/mod_remoteip.mak
+++ b/modules/metadata/mod_remoteip.mak
@@ -103,7 +103,7 @@ BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_remoteip.bsc"
BSC32_SBRS= \
LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_remoteip.pdb" /debug /out:"$(OUTDIR)\mod_remoteip.so" /implib:"$(OUTDIR)\mod_remoteip.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so /opt:ref
+LINK32_FLAGS=kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_remoteip.pdb" /debug /out:"$(OUTDIR)\mod_remoteip.so" /implib:"$(OUTDIR)\mod_remoteip.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so /opt:ref
LINK32_OBJS= \
"$(INTDIR)\mod_remoteip.obj" \
"$(INTDIR)\mod_remoteip.res" \
@@ -207,7 +207,7 @@ BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_remoteip.bsc"
BSC32_SBRS= \
LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_remoteip.pdb" /debug /out:"$(OUTDIR)\mod_remoteip.so" /implib:"$(OUTDIR)\mod_remoteip.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so
+LINK32_FLAGS=kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_remoteip.pdb" /debug /out:"$(OUTDIR)\mod_remoteip.so" /implib:"$(OUTDIR)\mod_remoteip.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_remoteip.so
LINK32_OBJS= \
"$(INTDIR)\mod_remoteip.obj" \
"$(INTDIR)\mod_remoteip.res" \
diff --git a/modules/proxy/balancers/mod_lbmethod_heartbeat.c b/modules/proxy/balancers/mod_lbmethod_heartbeat.c
index 640bddb7f7..d7462608a4 100644
--- a/modules/proxy/balancers/mod_lbmethod_heartbeat.c
+++ b/modules/proxy/balancers/mod_lbmethod_heartbeat.c
@@ -300,7 +300,7 @@ static proxy_worker *find_best_hb(proxy_balancer *balancer,
for (i = 0; i < balancer->workers->nelts; i++) {
worker = &APR_ARRAY_IDX(balancer->workers, i, proxy_worker *);
- server = apr_hash_get(servers, (*worker)->s->hostname, APR_HASH_KEY_STRING);
+ server = apr_hash_get(servers, (*worker)->s->hostname_ex, APR_HASH_KEY_STRING);
if (!server) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r, APLOGNO(01214)
diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c
index 009b375eae..e00a82dffa 100644
--- a/modules/proxy/mod_proxy.c
+++ b/modules/proxy/mod_proxy.c
@@ -2838,7 +2838,7 @@ static int proxy_status_hook(request_rec *r, int flags)
char fbuf[50];
if (!(flags & AP_STATUS_SHORT)) {
ap_rvputs(r, "<tr>\n<td>", (*worker)->s->scheme, "</td>", NULL);
- ap_rvputs(r, "<td>", (*worker)->s->hostname, "</td><td>", NULL);
+ ap_rvputs(r, "<td>", (*worker)->s->hostname_ex, "</td><td>", NULL);
ap_rvputs(r, ap_proxy_parse_wstatus(r->pool, *worker), NULL);
ap_rvputs(r, "</td><td>", (*worker)->s->route, NULL);
ap_rvputs(r, "</td><td>", (*worker)->s->redirect, NULL);
@@ -2930,7 +2930,8 @@ static void child_init(apr_pool_t *p, server_rec *s)
ap_proxy_define_worker(p, &forward, NULL, NULL, "http://www.apache.org", 0);
conf->forward = forward;
PROXY_STRNCPY(conf->forward->s->name, "proxy:forward");
- PROXY_STRNCPY(conf->forward->s->hostname, "*");
+ PROXY_STRNCPY(conf->forward->s->hostname, "*"); /* for compatibility */
+ PROXY_STRNCPY(conf->forward->s->hostname_ex, "*");
PROXY_STRNCPY(conf->forward->s->scheme, "*");
conf->forward->hash.def = conf->forward->s->hash.def =
ap_proxy_hashfunc(conf->forward->s->name, PROXY_HASHFUNC_DEFAULT);
@@ -2947,7 +2948,8 @@ static void child_init(apr_pool_t *p, server_rec *s)
if (!reverse) {
ap_proxy_define_worker(p, &reverse, NULL, NULL, "http://www.apache.org", 0);
PROXY_STRNCPY(reverse->s->name, "proxy:reverse");
- PROXY_STRNCPY(reverse->s->hostname, "*");
+ PROXY_STRNCPY(reverse->s->hostname, "*"); /* for compatibility */
+ PROXY_STRNCPY(reverse->s->hostname_ex, "*");
PROXY_STRNCPY(reverse->s->scheme, "*");
reverse->hash.def = reverse->s->hash.def =
ap_proxy_hashfunc(reverse->s->name, PROXY_HASHFUNC_DEFAULT);
diff --git a/modules/proxy/mod_proxy.h b/modules/proxy/mod_proxy.h
index 7542fdc5ec..bfa5760204 100644
--- a/modules/proxy/mod_proxy.h
+++ b/modules/proxy/mod_proxy.h
@@ -354,6 +354,8 @@ PROXY_WORKER_HC_FAIL )
#define PROXY_BALANCER_MAX_HOSTNAME_SIZE PROXY_WORKER_MAX_HOSTNAME_SIZE
#define PROXY_BALANCER_MAX_STICKY_SIZE 64
+#define PROXY_RFC1035_HOSTNAME_SIZE 256
+
/* RFC-1035 mentions limits of 255 for host-names and 253 for domain-names,
* dotted together(?) this would fit the below size (+ trailing NUL).
*/
@@ -384,7 +386,7 @@ typedef struct {
typedef struct {
char name[PROXY_WORKER_MAX_NAME_SIZE];
char scheme[PROXY_WORKER_MAX_SCHEME_SIZE]; /* scheme to use ajp|http|https */
- char hostname[PROXY_WORKER_MAX_HOSTNAME_SIZE]; /* remote backend address */
+ char hostname[PROXY_WORKER_MAX_HOSTNAME_SIZE]; /* remote backend address (deprecated, use hostname_ex below) */
char route[PROXY_WORKER_MAX_ROUTE_SIZE]; /* balancing route */
char redirect[PROXY_WORKER_MAX_ROUTE_SIZE]; /* temporary balancing redirection route */
char flusher[PROXY_WORKER_MAX_SCHEME_SIZE]; /* flush provider used by mod_proxy_fdpass */
@@ -444,6 +446,7 @@ typedef struct {
hcmethod_t method; /* method to use for health check */
apr_interval_time_t interval;
char upgrade[PROXY_WORKER_MAX_SCHEME_SIZE];/* upgrade protocol used by mod_proxy_wstunnel */
+ char hostname_ex[PROXY_RFC1035_HOSTNAME_SIZE]; /* RFC1035 compliant version of the remote backend address */
} proxy_worker_shared;
#define ALIGNED_PROXY_WORKER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_worker_shared)))
diff --git a/modules/proxy/mod_proxy_ajp.c b/modules/proxy/mod_proxy_ajp.c
index 051724e559..8669db6308 100644
--- a/modules/proxy/mod_proxy_ajp.c
+++ b/modules/proxy/mod_proxy_ajp.c
@@ -213,7 +213,7 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r,
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00868)
"request failed to %pI (%s)",
conn->worker->cp->addr,
- conn->worker->s->hostname);
+ conn->worker->s->hostname_ex);
if (status == AJP_EOVERFLOW)
return HTTP_BAD_REQUEST;
else if (status == AJP_EBAD_METHOD) {
@@ -297,7 +297,7 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r,
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00876)
"send failed to %pI (%s)",
conn->worker->cp->addr,
- conn->worker->s->hostname);
+ conn->worker->s->hostname_ex);
/*
* It is fatal when we failed to send a (part) of the request
* body.
@@ -337,7 +337,7 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r,
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00878)
"read response failed from %pI (%s)",
conn->worker->cp->addr,
- conn->worker->s->hostname);
+ conn->worker->s->hostname_ex);
/* If we had a successful cping/cpong and then a timeout
* we assume it is a request that cause a back-end timeout,
@@ -635,7 +635,7 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r,
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00892)
"got response from %pI (%s)",
conn->worker->cp->addr,
- conn->worker->s->hostname);
+ conn->worker->s->hostname_ex);
if (conf->error_override && ap_is_HTTP_ERROR(r->status)) {
/* clear r->status for override error, otherwise ErrorDocument
@@ -659,7 +659,7 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r,
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00893)
"dialog to %pI (%s) failed",
conn->worker->cp->addr,
- conn->worker->s->hostname);
+ conn->worker->s->hostname_ex);
/*
* If we already send data, signal a broken backend connection
* upwards in the chain.
@@ -794,7 +794,7 @@ static int proxy_ajp_handler(request_rec *r, proxy_worker *worker,
backend->close = 1;
ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r, APLOGNO(00897)
"cping/cpong failed to %pI (%s)",
- worker->cp->addr, worker->s->hostname);
+ worker->cp->addr, worker->s->hostname_ex);
status = HTTP_SERVICE_UNAVAILABLE;
retry++;
continue;
diff --git a/modules/proxy/mod_proxy_balancer.c b/modules/proxy/mod_proxy_balancer.c
index f467535c22..9605dc04b8 100644
--- a/modules/proxy/mod_proxy_balancer.c
+++ b/modules/proxy/mod_proxy_balancer.c
@@ -452,7 +452,7 @@ static void force_recovery(proxy_balancer *balancer, server_rec *s)
(*worker)->s->status &= ~PROXY_WORKER_IN_ERROR;
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(01165)
"%s: Forcing recovery for worker (%s)",
- balancer->s->name, (*worker)->s->hostname);
+ balancer->s->name, (*worker)->s->hostname_ex);
}
}
}
@@ -1469,7 +1469,7 @@ static int balancer_handler(request_rec *r)
"</httpd:name>\n", NULL);
ap_rvputs(r, " <httpd:scheme>", worker->s->scheme,
"</httpd:scheme>\n", NULL);
- ap_rvputs(r, " <httpd:hostname>", worker->s->hostname,
+ ap_rvputs(r, " <httpd:hostname>", worker->s->hostname_ex,
"</httpd:hostname>\n", NULL);
ap_rprintf(r, " <httpd:loadfactor>%.2f</httpd:loadfactor>\n",
(float)(worker->s->lbfactor)/100.0);
diff --git a/modules/proxy/mod_proxy_hcheck.c b/modules/proxy/mod_proxy_hcheck.c
index 1b2833bf10..485fa74141 100644
--- a/modules/proxy/mod_proxy_hcheck.c
+++ b/modules/proxy/mod_proxy_hcheck.c
@@ -416,7 +416,7 @@ static void create_hcheck_req(wctx_t *wctx, proxy_worker *hc,
"OPTIONS * HTTP/1.0\r\n"
"Host: %s:%d\r\n"
"\r\n",
- hc->s->hostname, (int)hc->s->port);
+ hc->s->hostname_ex, (int)hc->s->port);
break;
case HEAD:
@@ -434,7 +434,7 @@ static void create_hcheck_req(wctx_t *wctx, proxy_worker *hc,
(wctx->path ? wctx->path : ""),
(wctx->path && *hc->s->hcuri ? "/" : "" ),
(*hc->s->hcuri ? hc->s->hcuri : ""),
- hc->s->hostname, (int)hc->s->port);
+ hc->s->hostname_ex, (int)hc->s->port);
break;
default:
@@ -461,12 +461,13 @@ static proxy_worker *hc_get_hcworker(sctx_t *ctx, proxy_worker *worker,
: ap_proxy_port_of_scheme(worker->s->scheme));
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ctx->s, APLOGNO(03248)
"Creating hc worker %pp for %s://%s:%d",
- worker, worker->s->scheme, worker->s->hostname,
+ worker, worker->s->scheme, worker->s->hostname_ex,
(int)port);
ap_proxy_define_worker(ctx->p, &hc, NULL, NULL, worker->s->name, 0);
apr_snprintf(hc->s->name, sizeof hc->s->name, "%pp", worker);
- PROXY_STRNCPY(hc->s->hostname, worker->s->hostname);
+ PROXY_STRNCPY(hc->s->hostname, worker->s->hostname); /* for compatibility */
+ PROXY_STRNCPY(hc->s->hostname_ex, worker->s->hostname_ex);
PROXY_STRNCPY(hc->s->scheme, worker->s->scheme);
PROXY_STRNCPY(hc->s->hcuri, worker->s->hcuri);
PROXY_STRNCPY(hc->s->hcexpr, worker->s->hcexpr);
@@ -498,7 +499,7 @@ static proxy_worker *hc_get_hcworker(sctx_t *ctx, proxy_worker *worker,
: ap_proxy_port_of_scheme(worker->s->scheme));
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ctx->s, APLOGNO(03311)
"Updating hc worker %pp for %s://%s:%d",
- worker, worker->s->scheme, worker->s->hostname,
+ worker, worker->s->scheme, worker->s->hostname_ex,
(int)port);
hc->s->method = worker->s->method;
create_hcheck_req(wctx, hc, ctx->p);
@@ -519,12 +520,12 @@ static int hc_determine_connection(sctx_t *ctx, proxy_worker *worker,
*addr = worker->cp->addr;
}
else {
- rv = apr_sockaddr_info_get(addr, worker->s->hostname,
+ rv = apr_sockaddr_info_get(addr, worker->s->hostname_ex,
APR_UNSPEC, worker->s->port, 0, p);
if (rv != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ctx->s, APLOGNO(03249)
"DNS lookup failure for: %s:%d",
- worker->s->hostname, (int)worker->s->port);
+ worker->s->hostname_ex, (int)worker->s->port);
}
}
return (rv == APR_SUCCESS ? OK : !OK);
@@ -579,7 +580,7 @@ static int hc_get_backend(const char *proxy_function, proxy_conn_rec **backend,
status = ap_proxy_acquire_connection(proxy_function, backend, hc, ctx->s);
if (status == OK) {
(*backend)->addr = hc->cp->addr;
- (*backend)->hostname = hc->s->hostname;
+ (*backend)->hostname = hc->s->hostname_ex;
if (strcmp(hc->s->scheme, "https") == 0) {
if (!ap_proxy_ssl_enable(NULL)) {
ap_log_error(APLOG_MARK, APLOG_WARNING, 0, ctx->s, APLOGNO(03252)
diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c
index a5bfa77364..7377a118c5 100644
--- a/modules/proxy/mod_proxy_http.c
+++ b/modules/proxy/mod_proxy_http.c
@@ -1973,7 +1973,7 @@ static int proxy_http_handler(request_rec *r, proxy_worker *worker,
backend->close = 1;
ap_log_rerror(APLOG_MARK, APLOG_INFO, status, r, APLOGNO(01115)
"HTTP: 100-Continue failed to %pI (%s)",
- worker->cp->addr, worker->s->hostname);
+ worker->cp->addr, worker->s->hostname_ex);
retry++;
continue;
} else {
diff --git a/modules/proxy/mod_proxy_uwsgi.dep b/modules/proxy/mod_proxy_uwsgi.dep
new file mode 100644
index 0000000000..6513378895
--- /dev/null
+++ b/modules/proxy/mod_proxy_uwsgi.dep
@@ -0,0 +1,75 @@
+# Microsoft Developer Studio Generated Dependency File, included by mod_proxy_scgi.mak
+
+.\mod_proxy_uwsgi.c : \
+ "..\..\include\ap_config.h"\
+ "..\..\include\ap_config_layout.h"\
+ "..\..\include\ap_expr.h"\
+ "..\..\include\ap_hooks.h"\
+ "..\..\include\ap_mmn.h"\
+ "..\..\include\ap_provider.h"\
+ "..\..\include\ap_regex.h"\
+ "..\..\include\ap_release.h"\
+ "..\..\include\ap_slotmem.h"\
+ "..\..\include\apache_noprobes.h"\
+ "..\..\include\http_config.h"\
+ "..\..\include\http_connection.h"\
+ "..\..\include\http_core.h"\
+ "..\..\include\http_log.h"\
+ "..\..\include\http_main.h"\
+ "..\..\include\http_protocol.h"\
+ "..\..\include\http_request.h"\
+ "..\..\include\http_vhost.h"\
+ "..\..\include\httpd.h"\
+ "..\..\include\os.h"\
+ "..\..\include\util_cfgtree.h"\
+ "..\..\include\util_charset.h"\
+ "..\..\include\util_ebcdic.h"\
+ "..\..\include\util_filter.h"\
+ "..\..\include\util_mutex.h"\
+ "..\..\include\util_script.h"\
+ "..\..\srclib\apr-util\include\apr_buckets.h"\
+ "..\..\srclib\apr-util\include\apr_date.h"\
+ "..\..\srclib\apr-util\include\apr_hooks.h"\
+ "..\..\srclib\apr-util\include\apr_md5.h"\
+ "..\..\srclib\apr-util\include\apr_optional.h"\
+ "..\..\srclib\apr-util\include\apr_optional_hooks.h"\
+ "..\..\srclib\apr-util\include\apr_reslist.h"\
+ "..\..\srclib\apr-util\include\apr_strmatch.h"\
+ "..\..\srclib\apr-util\include\apr_uri.h"\
+ "..\..\srclib\apr-util\include\apr_uuid.h"\
+ "..\..\srclib\apr-util\include\apr_xlate.h"\
+ "..\..\srclib\apr-util\include\apu.h"\
+ "..\..\srclib\apr\include\apr.h"\
+ "..\..\srclib\apr\include\apr_allocator.h"\
+ "..\..\srclib\apr\include\apr_dso.h"\
+ "..\..\srclib\apr\include\apr_errno.h"\
+ "..\..\srclib\apr\include\apr_file_info.h"\
+ "..\..\srclib\apr\include\apr_file_io.h"\
+ "..\..\srclib\apr\include\apr_fnmatch.h"\
+ "..\..\srclib\apr\include\apr_general.h"\
+ "..\..\srclib\apr\include\apr_global_mutex.h"\
+ "..\..\srclib\apr\include\apr_hash.h"\
+ "..\..\srclib\apr\include\apr_inherit.h"\
+ "..\..\srclib\apr\include\apr_lib.h"\
+ "..\..\srclib\apr\include\apr_mmap.h"\
+ "..\..\srclib\apr\include\apr_network_io.h"\
+ "..\..\srclib\apr\include\apr_poll.h"\
+ "..\..\srclib\apr\include\apr_pools.h"\
+ "..\..\srclib\apr\include\apr_portable.h"\
+ "..\..\srclib\apr\include\apr_proc_mutex.h"\
+ "..\..\srclib\apr\include\apr_ring.h"\
+ "..\..\srclib\apr\include\apr_shm.h"\
+ "..\..\srclib\apr\include\apr_strings.h"\
+ "..\..\srclib\apr\include\apr_tables.h"\
+ "..\..\srclib\apr\include\apr_thread_mutex.h"\
+ "..\..\srclib\apr\include\apr_thread_proc.h"\
+ "..\..\srclib\apr\include\apr_time.h"\
+ "..\..\srclib\apr\include\apr_user.h"\
+ "..\..\srclib\apr\include\apr_want.h"\
+ ".\mod_proxy.h"\
+ ".\scgi.h"\
+
+
+..\..\build\win32\httpd.rc : \
+ "..\..\include\ap_release.h"\
+
diff --git a/modules/proxy/mod_proxy_uwsgi.mak b/modules/proxy/mod_proxy_uwsgi.mak
new file mode 100644
index 0000000000..6db95e5684
--- /dev/null
+++ b/modules/proxy/mod_proxy_uwsgi.mak
@@ -0,0 +1,380 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on mod_proxy_uwsgi.dsp
+!IF "$(CFG)" == ""
+CFG=mod_proxy_uwsgi - Win32 Release
+!MESSAGE No configuration specified. Defaulting to mod_proxy_uwsgi - Win32 Release.
+!ENDIF
+
+!IF "$(CFG)" != "mod_proxy_uwsgi - Win32 Release" && "$(CFG)" != "mod_proxy_uwsgi - Win32 Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "mod_proxy_uwsgi.mak" CFG="mod_proxy_uwsgi - Win32 Release"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "mod_proxy_uwsgi - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "mod_proxy_uwsgi - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+!ERROR An invalid configuration is specified.
+!ENDIF
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+!IF "$(CFG)" == "mod_proxy_uwsgi - Win32 Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\Release
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
+
+ALL : "$(OUTDIR)\mod_proxy_uwsgi.so" "$(DS_POSTBUILD_DEP)"
+
+!ELSE
+
+ALL : "mod_proxy - Win32 Release" "libhttpd - Win32 Release" "libaprutil - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\mod_proxy_uwsgi.so" "$(DS_POSTBUILD_DEP)"
+
+!ENDIF
+
+!IF "$(RECURSE)" == "1"
+CLEAN :"libapr - Win32 ReleaseCLEAN" "libaprutil - Win32 ReleaseCLEAN" "libhttpd - Win32 ReleaseCLEAN" "mod_proxy - Win32 ReleaseCLEAN"
+!ELSE
+CLEAN :
+!ENDIF
+ -@erase "$(INTDIR)\mod_proxy_uwsgi.obj"
+ -@erase "$(INTDIR)\mod_proxy_uwsgi.res"
+ -@erase "$(INTDIR)\mod_proxy_uwsgi_src.idb"
+ -@erase "$(INTDIR)\mod_proxy_uwsgi_src.pdb"
+ -@erase "$(OUTDIR)\mod_proxy_uwsgi.exp"
+ -@erase "$(OUTDIR)\mod_proxy_uwsgi.lib"
+ -@erase "$(OUTDIR)\mod_proxy_uwsgi.pdb"
+ -@erase "$(OUTDIR)\mod_proxy_uwsgi.so"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_proxy_uwsgi_src" /FD /c
+
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_proxy_uwsgi.res" /i "../../include" /i "../../srclib/apr/include" /d "NDEBUG" /d BIN_NAME="mod_proxy_uwsgi.so" /d LONG_NAME="proxy_uwsgi_module for Apache"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_proxy_uwsgi.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_proxy_uwsgi.pdb" /debug /out:"$(OUTDIR)\mod_proxy_uwsgi.so" /implib:"$(OUTDIR)\mod_proxy_uwsgi.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_uwsgi.so /opt:ref
+LINK32_OBJS= \
+ "$(INTDIR)\mod_proxy_uwsgi.obj" \
+ "$(INTDIR)\mod_proxy_uwsgi.res" \
+ "..\..\srclib\apr\Release\libapr-1.lib" \
+ "..\..\srclib\apr-util\Release\libaprutil-1.lib" \
+ "..\..\Release\libhttpd.lib" \
+ "$(OUTDIR)\mod_proxy.lib"
+
+"$(OUTDIR)\mod_proxy_uwsgi.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\Release\mod_proxy_uwsgi.so
+SOURCE="$(InputPath)"
+PostBuild_Desc=Embed .manifest
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+# Begin Custom Macros
+OutDir=.\Release
+# End Custom Macros
+
+"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_proxy_uwsgi.so"
+ if exist .\Release\mod_proxy_uwsgi.so.manifest mt.exe -manifest .\Release\mod_proxy_uwsgi.so.manifest -outputresource:.\Release\mod_proxy_uwsgi.so;2
+ echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF "$(CFG)" == "mod_proxy_uwsgi - Win32 Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
+
+ALL : "$(OUTDIR)\mod_proxy_uwsgi.so" "$(DS_POSTBUILD_DEP)"
+
+!ELSE
+
+ALL : "mod_proxy - Win32 Debug" "libhttpd - Win32 Debug" "libaprutil - Win32 Debug" "libapr - Win32 Debug" "$(OUTDIR)\mod_proxy_uwsgi.so" "$(DS_POSTBUILD_DEP)"
+
+!ENDIF
+
+!IF "$(RECURSE)" == "1"
+CLEAN :"libapr - Win32 DebugCLEAN" "libaprutil - Win32 DebugCLEAN" "libhttpd - Win32 DebugCLEAN" "mod_proxy - Win32 DebugCLEAN"
+!ELSE
+CLEAN :
+!ENDIF
+ -@erase "$(INTDIR)\mod_proxy_uwsgi.obj"
+ -@erase "$(INTDIR)\mod_proxy_uwsgi.res"
+ -@erase "$(INTDIR)\mod_proxy_uwsgi_src.idb"
+ -@erase "$(INTDIR)\mod_proxy_uwsgi_src.pdb"
+ -@erase "$(OUTDIR)\mod_proxy_uwsgi.exp"
+ -@erase "$(OUTDIR)\mod_proxy_uwsgi.lib"
+ -@erase "$(OUTDIR)\mod_proxy_uwsgi.pdb"
+ -@erase "$(OUTDIR)\mod_proxy_uwsgi.so"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "../../include" /I "../../srclib/apr/include" /I "../../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_proxy_uwsgi_src" /FD /EHsc /c
+
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mod_proxy_uwsgi.res" /i "../../include" /i "../../srclib/apr/include" /d "_DEBUG" /d BIN_NAME="mod_proxy_uwsgi.so" /d LONG_NAME="proxy_uwsgi_module for Apache"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_proxy_uwsgi.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_proxy_uwsgi.pdb" /debug /out:"$(OUTDIR)\mod_proxy_uwsgi.so" /implib:"$(OUTDIR)\mod_proxy_uwsgi.lib" /base:@..\..\os\win32\BaseAddr.ref,mod_proxy_uwsgi.so
+LINK32_OBJS= \
+ "$(INTDIR)\mod_proxy_uwsgi.obj" \
+ "$(INTDIR)\mod_proxy_uwsgi.res" \
+ "..\..\srclib\apr\Debug\libapr-1.lib" \
+ "..\..\srclib\apr-util\Debug\libaprutil-1.lib" \
+ "..\..\Debug\libhttpd.lib" \
+ "$(OUTDIR)\mod_proxy.lib"
+
+"$(OUTDIR)\mod_proxy_uwsgi.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\Debug\mod_proxy_uwsgi.so
+SOURCE="$(InputPath)"
+PostBuild_Desc=Embed .manifest
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\mod_proxy_uwsgi.so"
+ if exist .\Debug\mod_proxy_uwsgi.so.manifest mt.exe -manifest .\Debug\mod_proxy_uwsgi.so.manifest -outputresource:.\Debug\mod_proxy_uwsgi.so;2
+ echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ENDIF
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("mod_proxy_uwsgi.dep")
+!INCLUDE "mod_proxy_uwsgi.dep"
+!ELSE
+!MESSAGE Warning: cannot find "mod_proxy_uwsgi.dep"
+!ENDIF
+!ENDIF
+
+
+!IF "$(CFG)" == "mod_proxy_uwsgi - Win32 Release" || "$(CFG)" == "mod_proxy_uwsgi - Win32 Debug"
+SOURCE=.\mod_proxy_uwsgi.c
+
+"$(INTDIR)\mod_proxy_uwsgi.obj" : $(SOURCE) "$(INTDIR)"
+
+
+!IF "$(CFG)" == "mod_proxy_uwsgi - Win32 Release"
+
+"libapr - Win32 Release" :
+ cd ".\..\..\srclib\apr"
+ $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release"
+ cd "..\..\modules\proxy"
+
+"libapr - Win32 ReleaseCLEAN" :
+ cd ".\..\..\srclib\apr"
+ $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN
+ cd "..\..\modules\proxy"
+
+!ELSEIF "$(CFG)" == "mod_proxy_uwsgi - Win32 Debug"
+
+"libapr - Win32 Debug" :
+ cd ".\..\..\srclib\apr"
+ $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug"
+ cd "..\..\modules\proxy"
+
+"libapr - Win32 DebugCLEAN" :
+ cd ".\..\..\srclib\apr"
+ $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN
+ cd "..\..\modules\proxy"
+
+!ENDIF
+
+!IF "$(CFG)" == "mod_proxy_uwsgi - Win32 Release"
+
+"libaprutil - Win32 Release" :
+ cd ".\..\..\srclib\apr-util"
+ $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release"
+ cd "..\..\modules\proxy"
+
+"libaprutil - Win32 ReleaseCLEAN" :
+ cd ".\..\..\srclib\apr-util"
+ $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Release" RECURSE=1 CLEAN
+ cd "..\..\modules\proxy"
+
+!ELSEIF "$(CFG)" == "mod_proxy_uwsgi - Win32 Debug"
+
+"libaprutil - Win32 Debug" :
+ cd ".\..\..\srclib\apr-util"
+ $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug"
+ cd "..\..\modules\proxy"
+
+"libaprutil - Win32 DebugCLEAN" :
+ cd ".\..\..\srclib\apr-util"
+ $(MAKE) /$(MAKEFLAGS) /F ".\libaprutil.mak" CFG="libaprutil - Win32 Debug" RECURSE=1 CLEAN
+ cd "..\..\modules\proxy"
+
+!ENDIF
+
+!IF "$(CFG)" == "mod_proxy_uwsgi - Win32 Release"
+
+"libhttpd - Win32 Release" :
+ cd ".\..\.."
+ $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release"
+ cd ".\modules\proxy"
+
+"libhttpd - Win32 ReleaseCLEAN" :
+ cd ".\..\.."
+ $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Release" RECURSE=1 CLEAN
+ cd ".\modules\proxy"
+
+!ELSEIF "$(CFG)" == "mod_proxy_uwsgi - Win32 Debug"
+
+"libhttpd - Win32 Debug" :
+ cd ".\..\.."
+ $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug"
+ cd ".\modules\proxy"
+
+"libhttpd - Win32 DebugCLEAN" :
+ cd ".\..\.."
+ $(MAKE) /$(MAKEFLAGS) /F ".\libhttpd.mak" CFG="libhttpd - Win32 Debug" RECURSE=1 CLEAN
+ cd ".\modules\proxy"
+
+!ENDIF
+
+!IF "$(CFG)" == "mod_proxy_uwsgi - Win32 Release"
+
+"mod_proxy - Win32 Release" :
+ cd "."
+ $(MAKE) /$(MAKEFLAGS) /F ".\mod_proxy.mak" CFG="mod_proxy - Win32 Release"
+ cd "."
+
+"mod_proxy - Win32 ReleaseCLEAN" :
+ cd "."
+ $(MAKE) /$(MAKEFLAGS) /F ".\mod_proxy.mak" CFG="mod_proxy - Win32 Release" RECURSE=1 CLEAN
+ cd "."
+
+!ELSEIF "$(CFG)" == "mod_proxy_uwsgi - Win32 Debug"
+
+"mod_proxy - Win32 Debug" :
+ cd "."
+ $(MAKE) /$(MAKEFLAGS) /F ".\mod_proxy.mak" CFG="mod_proxy - Win32 Debug"
+ cd "."
+
+"mod_proxy - Win32 DebugCLEAN" :
+ cd "."
+ $(MAKE) /$(MAKEFLAGS) /F ".\mod_proxy.mak" CFG="mod_proxy - Win32 Debug" RECURSE=1 CLEAN
+ cd "."
+
+!ENDIF
+
+SOURCE=..\..\build\win32\httpd.rc
+
+!IF "$(CFG)" == "mod_proxy_uwsgi - Win32 Release"
+
+
+"$(INTDIR)\mod_proxy_uwsgi.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) /l 0x409 /fo"$(INTDIR)\mod_proxy_uwsgi.res" /i "../../include" /i "../../srclib/apr/include" /i "../../build\win32" /d "NDEBUG" /d BIN_NAME="mod_proxy_uwsgi.so" /d LONG_NAME="proxy_uwsgi_module for Apache" $(SOURCE)
+
+
+!ELSEIF "$(CFG)" == "mod_proxy_uwsgi - Win32 Debug"
+
+
+"$(INTDIR)\mod_proxy_uwsgi.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) /l 0x409 /fo"$(INTDIR)\mod_proxy_uwsgi.res" /i "../../include" /i "../../srclib/apr/include" /i "../../build\win32" /d "_DEBUG" /d BIN_NAME="mod_proxy_uwsgi.so" /d LONG_NAME="proxy_uwsgi_module for Apache" $(SOURCE)
+
+
+!ENDIF
+
+
+!ENDIF
+
diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c
index 11cbe9187a..59f5e3084d 100644
--- a/modules/proxy/proxy_util.c
+++ b/modules/proxy/proxy_util.c
@@ -1694,9 +1694,13 @@ PROXY_DECLARE(char *) ap_proxy_define_worker(apr_pool_t *p,
ap_log_error(APLOG_MARK, APLOG_ERR, 0, ap_server_conf, APLOGNO(010117)
"Alert! worker scheme (%s) too long; truncated to: %s", uri.scheme, wshared->scheme);
}
+ if (PROXY_STRNCPY(wshared->hostname_ex, uri.hostname) != APR_SUCCESS) {
+ return apr_psprintf(p, "worker hostname (%s) too long", uri.hostname);
+ }
if (PROXY_STRNCPY(wshared->hostname, uri.hostname) != APR_SUCCESS) {
- ap_log_error(APLOG_MARK, APLOG_ERR, 0, ap_server_conf, APLOGNO(010118)
- "Alert! worker hostname (%s) too long; truncated to: %s", uri.hostname, wshared->hostname);
+ ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf, APLOGNO(010118)
+ "worker hostname (%s) too long; truncated for legacy modules that do not use "
+ "proxy_worker_shared->hostname_ex: %s", uri.hostname, wshared->hostname);
}
wshared->flush_packets = flush_off;
wshared->flush_wait = PROXY_FLUSH_WAIT;
@@ -1854,7 +1858,7 @@ PROXY_DECLARE(apr_status_t) ap_proxy_initialize_worker(proxy_worker *worker, ser
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00930)
"initialized pool in child %" APR_PID_T_FMT " for (%s) min=%d max=%d smax=%d",
- getpid(), worker->s->hostname, worker->s->min,
+ getpid(), worker->s->hostname_ex, worker->s->min,
worker->s->hmax, worker->s->smax);
/* Set the acquire timeout */
@@ -1871,7 +1875,7 @@ PROXY_DECLARE(apr_status_t) ap_proxy_initialize_worker(proxy_worker *worker, ser
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00931)
"initialized single connection worker in child %" APR_PID_T_FMT " for (%s)",
- getpid(), worker->s->hostname);
+ getpid(), worker->s->hostname_ex);
}
apr_global_mutex_unlock(proxy_mutex);
@@ -1890,7 +1894,7 @@ static int ap_proxy_retry_worker(const char *proxy_function, proxy_worker *worke
if (PROXY_WORKER_IS(worker, PROXY_WORKER_STOPPED)) {
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(3305)
"%s: Won't retry worker (%s): stopped",
- proxy_function, worker->s->hostname);
+ proxy_function, worker->s->hostname_ex);
return DECLINED;
}
if ((worker->s->status & PROXY_WORKER_IGNORE_ERRORS)
@@ -1899,13 +1903,13 @@ static int ap_proxy_retry_worker(const char *proxy_function, proxy_worker *worke
worker->s->status &= ~PROXY_WORKER_IN_ERROR;
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00932)
"%s: worker for (%s) has been marked for retry",
- proxy_function, worker->s->hostname);
+ proxy_function, worker->s->hostname_ex);
return OK;
}
else {
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00933)
"%s: too soon to retry worker for (%s)",
- proxy_function, worker->s->hostname);
+ proxy_function, worker->s->hostname_ex);
return DECLINED;
}
}
@@ -2127,7 +2131,7 @@ PROXY_DECLARE(int) ap_proxy_acquire_connection(const char *proxy_function,
if (!PROXY_WORKER_IS_USABLE(worker)) {
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(00940)
"%s: disabled connection for (%s)",
- proxy_function, worker->s->hostname);
+ proxy_function, worker->s->hostname_ex);
return HTTP_SERVICE_UNAVAILABLE;
}
}
@@ -2150,12 +2154,12 @@ PROXY_DECLARE(int) ap_proxy_acquire_connection(const char *proxy_function,
if (rv != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, APLOGNO(00941)
"%s: failed to acquire connection for (%s)",
- proxy_function, worker->s->hostname);
+ proxy_function, worker->s->hostname_ex);
return HTTP_SERVICE_UNAVAILABLE;
}
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00942)
"%s: has acquired connection for (%s)",
- proxy_function, worker->s->hostname);
+ proxy_function, worker->s->hostname_ex);
(*conn)->worker = worker;
(*conn)->close = 0;
@@ -2170,7 +2174,7 @@ PROXY_DECLARE(int) ap_proxy_release_connection(const char *proxy_function,
{
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00943)
"%s: has released connection for (%s)",
- proxy_function, conn->worker->s->hostname);
+ proxy_function, conn->worker->s->hostname_ex);
connection_cleanup(conn);
return OK;
@@ -2766,7 +2770,7 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
"%s: error creating Unix domain socket for "
"target %s",
proxy_function,
- worker->s->hostname);
+ worker->s->hostname_ex);
break;
}
conn->connection = NULL;
@@ -2779,7 +2783,7 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
"%s (%s) failed",
proxy_function,
conn->uds_path,
- worker->s->hostname);
+ worker->s->hostname_ex);
break;
}
@@ -2788,7 +2792,7 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
"%s (%s)",
proxy_function,
conn->uds_path,
- worker->s->hostname);
+ worker->s->hostname_ex);
}
else
#endif
@@ -2802,7 +2806,7 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
"target %s",
proxy_function,
backend_addr->family,
- worker->s->hostname);
+ worker->s->hostname_ex);
/*
* this could be an IPv6 address from the DNS but the
* local machine won't give us an IPv6 socket; hopefully the
@@ -2852,7 +2856,7 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
}
ap_log_error(APLOG_MARK, APLOG_TRACE2, 0, s,
"%s: fam %d socket created to connect to %s",
- proxy_function, backend_addr->family, worker->s->hostname);
+ proxy_function, backend_addr->family, worker->s->hostname_ex);
if (conf->source_address_set) {
local_addr = apr_pmemdup(conn->scpool, conf->source_address,
@@ -2877,7 +2881,7 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
"%s: attempt to connect to %pI (%s) failed",
proxy_function,
backend_addr,
- worker->s->hostname);
+ worker->s->hostname_ex);
backend_addr = backend_addr->next;
continue;
}
@@ -2886,7 +2890,7 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
"%s: connection established with %pI (%s)",
proxy_function,
backend_addr,
- worker->s->hostname);
+ worker->s->hostname_ex);
}
/* Set a timeout on the socket */
@@ -2920,7 +2924,7 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
"via http CONNECT through %pI (%s) failed",
proxy_function,
forward->target_host, forward->target_port,
- backend_addr, worker->s->hostname);
+ backend_addr, worker->s->hostname_ex);
backend_addr = backend_addr->next;
continue;
}
@@ -2942,7 +2946,7 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,
ap_log_error(APLOG_MARK, APLOG_ERR, 0, s, APLOGNO(00959)
"ap_proxy_connect_backend disabling worker for (%s) for %"
APR_TIME_T_FMT "s",
- worker->s->hostname, apr_time_sec(worker->s->retry));
+ worker->s->hostname_ex, apr_time_sec(worker->s->retry));
}
}
else {
diff --git a/os/win32/BaseAddr.ref b/os/win32/BaseAddr.ref
index a682d0f6f3..7a9678ad96 100644
--- a/os/win32/BaseAddr.ref
+++ b/os/win32/BaseAddr.ref
@@ -131,3 +131,4 @@ mod_proxy_http2.so 0x70C30000 0x00020000
mod_http2.so 0x70C50000 0x00040000
mod_brotli.so 0x70C90000 0x000C0000
mod_md.so 0x70D50000 0x00030000
+mod_proxy_uwsgi.so 0x70D80000 0x00020000 \ No newline at end of file