You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2016/05/21 15:13:52 UTC

svn commit: r1744951 [16/17] - in /httpd/httpd/branches/2.4.x: ./ docs/manual/ docs/manual/developer/ docs/manual/howto/ docs/manual/misc/ docs/manual/mod/ docs/manual/platform/ docs/manual/programs/ docs/manual/rewrite/ docs/manual/ssl/ docs/manual/vh...

Modified: httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.fr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.fr (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.fr Sat May 21 15:13:48 2016
@@ -287,8 +287,10 @@ pour d�crire les directives Apache</a><
 <li><a href="mod/mod_proxy_fcgi.html">Module Apache mod_proxy_fcgi</a></li>
 <li><a href="mod/mod_proxy_fdpass.html">Module Apache mod_proxy_fdpass</a></li>
 <li><a href="mod/mod_proxy_ftp.html">Module Apache mod_proxy_ftp</a></li>
+<li><a href="mod/mod_proxy_hcheck.html">Module Apache mod_proxy_hcheck</a></li>
 <li><a href="mod/mod_proxy_html.html">Module Apache mod_proxy_html</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_wstunnel.html">Module Apache mod_proxy_wstunnel</a></li>
 <li><a href="mod/mod_ratelimit.html">Module Apache mod_ratelimit</a></li>

Modified: httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.ja.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.ja.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -251,8 +251,10 @@
 <li><a href="mod/mod_proxy_fcgi.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_proxy_fcgi</a></li>
 <li><a href="mod/mod_proxy_fdpass.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_proxy_fdpass</a></li>
 <li><a href="mod/mod_proxy_ftp.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_proxy_ftp</a></li>
+<li><a href="mod/mod_proxy_hcheck.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_proxy_hcheck</a></li>
 <li><a href="mod/mod_proxy_html.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_proxy_html</a></li>
 <li><a href="mod/mod_proxy_http.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_proxy_http</a></li>
+<li><a href="mod/mod_proxy_http2.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_proxy_http2</a></li>
 <li><a href="mod/mod_proxy_scgi.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_proxy_scgi</a></li>
 <li><a href="mod/mod_proxy_wstunnel.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_proxy_wstunnel</a></li>
 <li><a href="mod/mod_ratelimit.html">Apache \u30e2\u30b8\u30e5\u30fc\u30eb mod_ratelimit</a></li>

Modified: httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.ko.euc-kr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.ko.euc-kr [euc-kr] Sat May 21 15:13:48 2016
@@ -250,8 +250,10 @@
 <li><a href="mod/mod_proxy_fcgi.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_proxy_fcgi</a></li>
 <li><a href="mod/mod_proxy_fdpass.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_proxy_fdpass</a></li>
 <li><a href="mod/mod_proxy_ftp.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_proxy_ftp</a></li>
+<li><a href="mod/mod_proxy_hcheck.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_proxy_hcheck</a></li>
 <li><a href="mod/mod_proxy_html.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_proxy_html</a></li>
 <li><a href="mod/mod_proxy_http.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_proxy_http</a></li>
+<li><a href="mod/mod_proxy_http2.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_proxy_http2</a></li>
 <li><a href="mod/mod_proxy_scgi.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_proxy_scgi</a></li>
 <li><a href="mod/mod_proxy_wstunnel.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_proxy_wstunnel</a></li>
 <li><a href="mod/mod_ratelimit.html">\uc544\ud30c\uce58 \ubaa8\ub4c8 mod_ratelimit</a></li>

Modified: httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.tr.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.tr.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -266,8 +266,10 @@ Windows ile Apache Kullan\u0131m\u0131</a></li>
 <li><a href="mod/mod_proxy_fcgi.html">Apache Mod�l� mod_proxy_fcgi</a></li>
 <li><a href="mod/mod_proxy_fdpass.html">Apache Mod�l� mod_proxy_fdpass</a></li>
 <li><a href="mod/mod_proxy_ftp.html">Apache Mod�l� mod_proxy_ftp</a></li>
+<li><a href="mod/mod_proxy_hcheck.html">Apache Mod�l� mod_proxy_hcheck</a></li>
 <li><a href="mod/mod_proxy_html.html">Apache Mod�l� mod_proxy_html</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_wstunnel.html">Apache Mod�l� mod_proxy_wstunnel</a></li>
 <li><a href="mod/mod_ratelimit.html">Apache Mod�l� mod_ratelimit</a></li>

Modified: httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.zh-cn.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.zh-cn.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.zh-cn.utf8 (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/sitemap.html.zh-cn.utf8 Sat May 21 15:13:48 2016
@@ -251,8 +251,10 @@
 <li><a href="mod/mod_proxy_fcgi.html">Apache 模块 mod_proxy_fcgi</a></li>
 <li><a href="mod/mod_proxy_fdpass.html">Apache 模块 mod_proxy_fdpass</a></li>
 <li><a href="mod/mod_proxy_ftp.html">Apache 模块 mod_proxy_ftp</a></li>
+<li><a href="mod/mod_proxy_hcheck.html">Apache 模块 mod_proxy_hcheck</a></li>
 <li><a href="mod/mod_proxy_html.html">Apache 模块 mod_proxy_html</a></li>
 <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_wstunnel.html">Apache 模块 mod_proxy_wstunnel</a></li>
 <li><a href="mod/mod_ratelimit.html">Apache 模块 mod_ratelimit</a></li>

Modified: httpd/httpd/branches/2.4.x/docs/manual/ssl/ssl_intro.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/ssl/ssl_intro.html.ja.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/ssl/ssl_intro.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/ssl/ssl_intro.html.ja.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -68,7 +68,7 @@ Apache \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u7ffb\u8a33\u30d7\u30ed\u30b8
 <li><img alt="" src="../images/down.gif" /> <a href="#certificates">\u8a3c\u660e\u66f8</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#ssl">Secure Sockets Layer (SSL)</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#references">\u53c2\u8003\u6587\u732e</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
+</ul><h3>\u53c2\u7167</h3><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="cryptographictech" id="cryptographictech">\u6697\u53f7\u5316\u6280\u8853</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/stopping.html.de
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/stopping.html.de?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/stopping.html.de (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/stopping.html.de Sat May 21 15:13:48 2016
@@ -48,7 +48,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">Unterbrechungsfreier Neustart</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#hup">Neustarten</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#race">Anhang: Signale und Wettkampfsituationen</a></li>
-</ul><h3>Siehe auch</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li></ul><ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div>
+</ul><h3>Siehe auch</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li><li><a href="#comments_section">Kommentare</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="introduction" id="introduction">Einleitung</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/stopping.html.es
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/stopping.html.es?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/stopping.html.es (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/stopping.html.es Sat May 21 15:13:48 2016
@@ -7,7 +7,7 @@
               This file is generated from xml source: DO NOT EDIT
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       -->
-<title>Iniciar y Parar el servidor Apache - Servidor HTTP Apache Versi�n 2.4</title>
+<title>Iniciar y Parar el servidor Apache - Servidor Apache HTTP Versi�n 2.4</title>
 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
@@ -31,7 +31,7 @@
 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="./tr/stopping.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
 </div>
-<div class="outofdate">�sta traducci�n podr�a estar
+<div class="outofdate">Esta traducci�n podr�a estar
             obsoleta. Consulte la versi�n en ingl�s de la
             documentaci�n para comprobar si se han producido cambios
             recientemente.</div>
@@ -48,7 +48,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">Reinicio Graceful</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#hup">Reiniciar Apache</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#race">Ap�ndice: se�ales y race conditions</a></li>
-</ul><h3>Consulte tambi�n</h3><ul class="seealso"><li><a href="programs/httpd.html">httpd</a></li><li><a href="programs/apachectl.html">apachectl</a></li></ul><ul class="seealso"><li><a href="#comments_section">Comentarios</a></li></ul></div>
+</ul><h3>Consulte tambi�n</h3><ul class="seealso"><li><a href="programs/httpd.html">httpd</a></li><li><a href="programs/apachectl.html">apachectl</a></li><li><a href="#comments_section">Comentarios</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="introduction" id="introduction">Introducci�n</a></h2>
@@ -288,7 +288,7 @@ var comments_identifier = 'http://httpd.
     }
 })(window, document);
 //--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licencia bajo los t�rminos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licencia bajo los t�rminos de <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 <p class="menu"><a href="./mod/">M�dulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa del sitio web</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
 if (typeof(prettyPrint) !== 'undefined') {
     prettyPrint();

Modified: httpd/httpd/branches/2.4.x/docs/manual/stopping.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/stopping.html.ja.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/stopping.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/stopping.html.ja.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -44,7 +44,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">\u7de9\u3084\u304b\u306a\u518d\u8d77\u52d5</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#hup">\u6025\u306a\u518d\u8d77\u52d5</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#gracefulstop">\u7de9\u3084\u304b\u306a\u505c\u6b62</a></li>
-</ul><h3>\u53c2\u7167</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li><li><a href="invoking.html">Starting</a></li></ul><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
+</ul><h3>\u53c2\u7167</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li><li><a href="invoking.html">Starting</a></li><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="introduction" id="introduction">\u30a4\u30f3\u30c8\u30ed\u30c0\u30af\u30b7\u30e7\u30f3</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/stopping.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/stopping.html.ko.euc-kr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/stopping.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/stopping.html.ko.euc-kr [euc-kr] Sat May 21 15:13:48 2016
@@ -44,7 +44,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">\uc810\uc796\uc740 \uc7ac\uc2dc\uc791</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#hup">\ub2f9\uc7a5 \uc7ac\uc2dc\uc791</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#race">\ubd80\ub85d: \uc2dc\uadf8\ub110\uacfc \ub808\uc774\uc2a4 \ucee8\ub514\uc158</a></li>
-</ul><h3>\ucc38\uace0</h3><ul class="seealso"><li><a href="programs/httpd.html">httpd</a></li><li><a href="programs/apachectl.html">apachectl</a></li></ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>\ucc38\uace0</h3><ul class="seealso"><li><a href="programs/httpd.html">httpd</a></li><li><a href="programs/apachectl.html">apachectl</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">
 <h2><a name="introduction" id="introduction">\uc18c\uac1c</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/stopping.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/stopping.html.tr.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/stopping.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/stopping.html.tr.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -45,7 +45,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#graceful">Nazik�e Yeniden Ba\u015flat</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#hup">Hemen Yeniden Ba\u015flat</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#gracefulstop">Nazik�e Durdur</a></li>
-</ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li><li><a href="invoking.html">Ba\u015flatma</a></li></ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
+</ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li><li><a href="invoking.html">Ba\u015flatma</a></li><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="introduction" id="introduction">Giri\u015f</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/suexec.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/suexec.html.ja.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/suexec.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/suexec.html.ja.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -59,7 +59,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#usage">suEXEC \u306e\u4f7f\u7528</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#debug">suEXEC \u306e\u30c7\u30d0\u30c3\u30b0</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#jabberwock">\u3068\u304b\u3052\u306b\u6ce8\u610f: \u8b66\u544a\u3068\u4e8b\u4f8b</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
+</ul><h3>\u53c2\u7167</h3><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="before" id="before">\u59cb\u3081\u308b\u524d\u306b</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/suexec.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/suexec.html.ko.euc-kr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/suexec.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/suexec.html.ko.euc-kr [euc-kr] Sat May 21 15:13:48 2016
@@ -51,7 +51,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#usage">suEXEC \uc0ac\uc6a9\ud558\uae30</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#debug">suEXEC \ub514\ubc84\uae45\ud558\uae30</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#jabberwock">\ub2e4\uc2dc \ud55c\ubc88 \uc870\uc2ec\ud558\ub77c: \uacbd\uace0\uc640 \uc608\uc81c</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>\ucc38\uace0</h3><ul class="seealso"><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">
 <h2><a name="before" id="before">\uc2dc\uc791\ud558\uae30 \uc804\uc5d0</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/suexec.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/suexec.html.tr.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/suexec.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/suexec.html.tr.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -55,7 +55,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#usage">SuEXEC\u2019in kullan\u0131m\u0131</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#debug">SuEXEC ve hata ay\u0131klama</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#jabberwock">Uyar\u0131lar ve �rnekler</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
+</ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="before" id="before">Ba\u015flamadan �nce</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.en?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.en (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.en Sat May 21 15:13:48 2016
@@ -235,9 +235,9 @@ the <code>/bar/</code> directory on <cod
 and returns them to the client as if they were from the local
 server.</p>
 
-<pre class="prettyprint lang-config">ProxyPass "/foo/" "http://internal.example.com/bar/"<br />
-ProxyPassReverse "/foo/" "http://internal.example.com/bar/"<br />
-ProxyPassReverseCookieDomain internal.example.com public.example.com<br />
+<pre class="prettyprint lang-config">ProxyPass "/foo/" "http://internal.example.com/bar/"
+ProxyPassReverse "/foo/" "http://internal.example.com/bar/"
+ProxyPassReverseCookieDomain internal.example.com public.example.com
 ProxyPassReverseCookiePath "/foo/" "/bar/"</pre>
 
 

Modified: httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.ja.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.ja.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -45,7 +45,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#proxy">\u30ea\u30d0\u30fc\u30b9\u30d7\u30ed\u30ad\u30b7</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#rewrite">\u30ea\u30e9\u30a4\u30c8\u30a8\u30f3\u30b8\u30f3</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#notfound">File Not Found</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
+</ul><h3>\u53c2\u7167</h3><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="related" id="related">\u95a2\u9023\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.ko.euc-kr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.ko.euc-kr [euc-kr] Sat May 21 15:13:48 2016
@@ -43,7 +43,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#proxy">\uc5ed\ud504\ub85d\uc2dc(Reverse Proxy)</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#rewrite">\uc7ac\uc791\uc131 \uc5d4\uc9c4 (Rewriting Engine)</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#notfound">File Not Found</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>\ucc38\uace0</h3><ul class="seealso"><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">
 <h2><a name="related" id="related">\uad00\ub828\ub41c \ubaa8\ub4c8\uacfc \uc9c0\uc2dc\uc5b4\ub4e4</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.tr.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/urlmapping.html.tr.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -29,6 +29,7 @@
 <a href="./ko/urlmapping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="./tr/urlmapping.html" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
 </div>
+<div class="outofdate">Bu �eviri g�ncel olmayabilir. Son de\u011fi\u015fiklikler i�in \u0130ngilizce s�r�m ge�erlidir.</div>
 
     <p>Bu belgede, bir istekte belirtilen URL\u2019nin sunulacak dosyan\u0131n dosya
       sistemindeki yerini bulmak i�in Apache HTTP Sunucusu taraf\u0131ndan nas\u0131l
@@ -43,7 +44,7 @@
 <li><img alt="" src="./images/down.gif" /> <a href="#rewrite">Yeniden Yazma Motoru</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#notfound">Dosya orada yok</a></li>
 <li><img alt="" src="./images/down.gif" /> <a href="#other">Di\u011fer URL E\u015fleme Mod�lleri</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
+</ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="related" id="related">\u0130lgili Mod�ller ve Y�nergeler</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/details.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/details.html.ko.euc-kr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/details.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/details.html.ko.euc-kr [euc-kr] Sat May 21 15:13:48 2016
@@ -44,7 +44,7 @@
 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configparsing">\uc124\uc815\ud30c\uc77c \uc77d\uae30</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#hostmatching">\uac00\uc0c1\ud638\uc2a4\ud2b8 \ucc3e\uae30</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#tips">\ud301</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>\ucc38\uace0</h3><ul class="seealso"><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">
 <h2><a name="configparsing" id="configparsing">\uc124\uc815\ud30c\uc77c \uc77d\uae30</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/details.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/details.html.tr.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/details.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/details.html.tr.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -46,7 +46,7 @@
 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configparsing">Yap\u0131land\u0131rma Dosyas\u0131</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#hostmatching">Sanal Kona\u011f\u0131n Belirlenmesi</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#tips">\u0130pu�lar\u0131</a></li>
-</ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li><a href="ip-based.html">IP\u2019ye Dayal\u0131 Sanal Konak Deste\u011fi</a></li><li><a href="name-based.html">\u0130sme Dayal\u0131 Sanal Konak Deste\u011fi</a></li><li><a href="examples.html">�ok Kullan\u0131lan Sanal Konak �rnekleri</a></li><li><a href="mass.html">Devingen olarak Yap\u0131land\u0131r\u0131lan Kitlesel Sanal Bar\u0131nd\u0131rma</a></li></ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
+</ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li><a href="ip-based.html">IP\u2019ye Dayal\u0131 Sanal Konak Deste\u011fi</a></li><li><a href="name-based.html">\u0130sme Dayal\u0131 Sanal Konak Deste\u011fi</a></li><li><a href="examples.html">�ok Kullan\u0131lan Sanal Konak �rnekleri</a></li><li><a href="mass.html">Devingen olarak Yap\u0131land\u0131r\u0131lan Kitlesel Sanal Bar\u0131nd\u0131rma</a></li><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="configparsing" id="configparsing">Yap\u0131land\u0131rma Dosyas\u0131</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.ja.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.ja.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -61,7 +61,7 @@
     \u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u306b\u79fb\u884c\u3059\u308b</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#serverpath"><code>ServerPath</code> \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3092
     \u4f7f\u3046</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
+</ul><h3>\u53c2\u7167</h3><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="purename" id="purename">\u4e00\u3064\u306e IP \u30a2\u30c9\u30ec\u30b9\u3067\u3044\u304f\u3064\u304b\u306e\u540d\u524d\u30d9\u30fc\u30b9\u306e

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.ko.euc-kr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.ko.euc-kr [euc-kr] Sat May 21 15:13:48 2016
@@ -59,7 +59,7 @@
     \uac00\uc0c1\ud638\uc2a4\ud2b8\ub85c \uc62e\uae30\uae30</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#serverpath"><code>ServerPath</code>
 	\uc9c0\uc2dc\uc5b4 \uc0ac\uc6a9\ud558\uae30</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>\ucc38\uace0</h3><ul class="seealso"><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">
 <h2><a name="purename" id="purename">IP \uc8fc\uc18c \ud55c\uac1c\uc5d0 \uc5ec\ub7ec \uc774\ub984\uae30\ubc18

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.tr.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/examples.html.tr.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -52,7 +52,7 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#migrate">Bir isme dayal\u0131 sanal kona\u011f\u0131 bir IP\u2019ye dayal\u0131
     sanal konakla yans\u0131lamak</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#serverpath"><code>ServerPath</code> y�nergesinin kullan\u0131m\u0131</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
+</ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="purename" id="purename">Tek bir IP ile �ok say\u0131da isme dayal\u0131 site</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.ja.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.ja.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -41,7 +41,7 @@
 \u30c7\u30fc\u30e2\u30f3\u3092\u4e00\u3064\u8a2d\u5b9a\u3059\u308b</a></li>
 </ul><h3>\u53c2\u7167</h3><ul class="seealso"><li>
 <a href="name-based.html">\u540d\u524d\u30d9\u30fc\u30b9\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u30b5\u30dd\u30fc\u30c8</a>
-</li></ul><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
+</li><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="requirements" id="requirements">\u30b7\u30b9\u30c6\u30e0\u8981\u4ef6</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.ko.euc-kr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.ko.euc-kr [euc-kr] Sat May 21 15:13:48 2016
@@ -38,7 +38,7 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#single">\uc11c\ubc84 \ud558\ub098\ub85c \uac00\uc0c1\ud638\uc2a4\ud2b8 \uc2e4\ud589\ud558\uae30</a></li>
 </ul><h3>\ucc38\uace0</h3><ul class="seealso"><li>
 <a href="name-based.html">\uc774\ub984\uae30\ubc18 \uac00\uc0c1\ud638\uc2a4\ud2b8 \uc9c0\uc6d0</a>
-</li></ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</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">
 <h2><a name="requirements" id="requirements">\uc2dc\uc2a4\ud15c \uc694\uad6c\uc0ac\ud56d</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.tr.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/ip-based.html.tr.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -37,7 +37,7 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#single">Sanal konaklar tek bir s�recin yap\u0131land\u0131r\u0131lmas\u0131</a></li>
 </ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li>
 <a href="name-based.html">\u0130sme Dayal\u0131 Sanal Konak Deste\u011fi</a>
-</li></ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
+</li><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="explanation" id="explanation">IP'ye dayal\u0131 sanal konak deste\u011fi nedir</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/mass.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/mass.html.ko.euc-kr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/mass.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/mass.html.ko.euc-kr [euc-kr] Sat May 21 15:13:48 2016
@@ -51,7 +51,7 @@
     \uc0ac\uc6a9\ud55c \ud648\ud398\uc774\uc9c0 \uc2dc\uc2a4\ud15c</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#xtra-conf">\ubcc4\ub3c4\uc758 \uac00\uc0c1\ud638\uc2a4\ud2b8 \uc124\uc815\ud30c\uc77c
     \uc0ac\uc6a9\ud558\uae30</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>\ucc38\uace0</h3><ul class="seealso"><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">
 <h2><a name="motivation" id="motivation">\ub3d9\uae30</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/mass.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/mass.html.tr.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/mass.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/mass.html.tr.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -45,7 +45,7 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#combinations">Ayn\u0131 Sunucuda Ki\u015fisel ve Kurumsal Sanal Konaklar</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#ipbased">IP\u2019ye dayal\u0131 sanal konaklar\u0131 daha verimli k\u0131lmak</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#simple.rewrite"><code>mod_rewrite</code> ile Kitlesel Sanal Konaklar</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
+</ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="motivation" id="motivation">Ama�</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.de
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.de?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.de (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.de Sat May 21 15:13:48 2016
@@ -45,7 +45,7 @@
     Hosts</a></li><li><a href="details.html">Tiefergehende Er�rterung der Zuweisung
     virtueller Hosts</a></li><li><a href="mass.html">Dynamisch konfiguriertes
     Massen-Virtual-Hosting</a></li><li><a href="examples.html">Beispiele f�r virtuelle Hosts in typischen
-    Installationen</a></li><li><a href="examples.html#serverpath">ServerPath-Beispielkonfiguration</a></li></ul><ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div>
+    Installationen</a></li><li><a href="examples.html#serverpath">ServerPath-Beispielkonfiguration</a></li><li><a href="#comments_section">Kommentare</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="namevip" id="namevip">Namensbasierte gegen�ber IP-basierten

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.ja.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.ja.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.ja.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.ja.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -41,7 +41,7 @@
 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#namevip">\u540d\u524d\u30d9\u30fc\u30b9\u3068 IP \u30d9\u30fc\u30b9\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u306e\u6bd4\u8f03</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#using">\u540d\u524d\u30d9\u30fc\u30b9\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u3092\u5229\u7528\u3059\u308b</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#compat">\u53e4\u3044\u30d6\u30e9\u30a6\u30b6\u3068\u306e\u4e92\u63db\u6027</a></li>
-</ul><h3>\u53c2\u7167</h3><ul class="seealso"><li><a href="ip-based.html">\u30cd\u30fc\u30e0\u30d9\u30fc\u30b9\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8</a></li><li><a href="details.html">\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u306e\u30de\u30c3\u30c1\u30f3\u30b0\u306b\u3064\u3044\u3066\u306e\u8a73\u7d30</a></li><li><a href="mass.html">\u5927\u91cf\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u306e\u52d5\u7684\u306a\u8a2d\u5b9a</a></li><li><a href="examples.html">\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u306e\u4e00\u822c\u7684\u306a\u8a2d\u5b9a\u4f8b</a></li><li><a href="examples.html#serverpath">ServerPath \u8a2d\u5b9a\u4f8b</a></li></ul><ul class="seealso"><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
+</ul><h3>\u53c2\u7167</h3><ul class="seealso"><li><a href="ip-based.html">\u30cd\u30fc\u30e0\u30d9\u30fc\u30b9\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8</a></li><li><a href="details.html">\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u306e\u30de\u30c3\u30c1\u30f3\u30b0\u306b\u3064\u3044\u3066\u306e\u8a73\u7d30</a></li><li><a href="mass.html">\u5927\u91cf\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u306e\u52d5\u7684\u306a\u8a2d\u5b9a</a></li><li><a href="examples.html">\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u306e\u4e00\u822c\u7684\u306a\u8a2d\u5b9a\u4f8b</a></li><li><a href="examples.html#serverpath">ServerPath \u8a2d\u5b9a\u4f8b</a></li><li><a href="#comments_section">\u30b3\u30e1\u30f3\u30c8</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="namevip" id="namevip">\u540d\u524d\u30d9\u30fc\u30b9\u3068 IP \u30d9\u30fc\u30b9\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u306e\u6bd4\u8f03</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.ko.euc-kr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.ko.euc-kr?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.ko.euc-kr [euc-kr] Sat May 21 15:13:48 2016
@@ -39,7 +39,7 @@
 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#namevip">\uc774\ub984\uae30\ubc18 \ub300 IP\uae30\ubc18 \uac00\uc0c1\ud638\uc2a4\ud2b8</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#using">\uc774\ub984\uae30\ubc18 \uac00\uc0c1\ud638\uc2a4\ud2b8 \uc0ac\uc6a9\ud558\uae30</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#compat">\uc624\ub798\ub41c \ube0c\ub77c\uc6b0\uc800\uc640 \ud638\ud658</a></li>
-</ul><h3>\ucc38\uace0</h3><ul class="seealso"><li><a href="ip-based.html">IP\uae30\ubc18 \uac00\uc0c1\ud638\uc2a4\ud2b8 \uc9c0\uc6d0</a></li><li><a href="details.html">\uac00\uc0c1\ud638\uc2a4\ud2b8 \ucc3e\uae30\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc124\uba85</a></li><li><a href="mass.html">\ub300\ub7c9\uc758 \uac00\uc0c1\ud638\uc2a4\ud2b8\ub97c \ub3d9\uc801\uc73c\ub85c \uc124\uc815\ud558\uae30</a></li><li><a href="examples.html">\uc77c\ubc18\uc801\uc778 \uac00\uc0c1\ud638\uc2a4\ud2b8 \uc608</a></li><li><a href="examples.html#serverpath">ServerPath \uc124\uc815 \uc608</a></li></ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3>\ucc38\uace0</h3><ul class="seealso"><li><a href="ip-based.html">IP\uae30\ubc18 \uac00\uc0c1\ud638\uc2a4\ud2b8 \uc9c0\uc6d0</a></li><li><a href="details.html">\uac00\uc0c1\ud638\uc2a4\ud2b8 \ucc3e\uae30\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc124\uba85</a></li><li><a href="mass.html">\ub300\ub7c9\uc758 \uac00\uc0c1\ud638\uc2a4\ud2b8\ub97c \ub3d9\uc801\uc73c\ub85c \uc124\uc815\ud558\uae30</a></li><li><a href="examples.html">\uc77c\ubc18\uc801\uc778 \uac00\uc0c1\ud638\uc2a4\ud2b8 \uc608</a></li><li><a href="examples.html#serverpath">ServerPath \uc124\uc815 \uc608</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">
 <h2><a name="namevip" id="namevip">\uc774\ub984\uae30\ubc18 \ub300 IP\uae30\ubc18 \uac00\uc0c1\ud638\uc2a4\ud2b8</a></h2>

Modified: httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.tr.utf8
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.tr.utf8?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.tr.utf8 [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/docs/manual/vhosts/name-based.html.tr.utf8 [utf-8] Sat May 21 15:13:48 2016
@@ -40,7 +40,7 @@
 </ul><h3>Ayr\u0131ca bak\u0131n\u0131z:</h3><ul class="seealso"><li><a href="ip-based.html">IP Adresine Dayal\u0131 Sanal Konaklar</a></li><li><a href="details.html">Konak E\u015flemenin Derinli\u011fine \u0130ncelenmesi</a>
 </li><li><a href="mass.html">Devingen olarak Yap\u0131land\u0131r\u0131lan K�tlesel Sanal
 Bar\u0131nd\u0131rma</a></li><li><a href="examples.html">�ok kullan\u0131lan sanal konak yap\u0131land\u0131rma
-�rnekleri</a></li></ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
+�rnekleri</a></li><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="namevip" id="namevip">\u0130sme dayal\u0131 ve IP\u2019ye dayal\u0131 Sanal Konaklar</a></h2>

Modified: httpd/httpd/branches/2.4.x/include/ap_mmn.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/include/ap_mmn.h?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/include/ap_mmn.h (original)
+++ httpd/httpd/branches/2.4.x/include/ap_mmn.h Sat May 21 15:13:48 2016
@@ -432,7 +432,7 @@
  * 20120211.32 (2.4.10-dev) Add SSL reusable SNI to mod_proxy.h's proxy_conn_rec
  * 20120211.33 (2.4.10-dev) Add suspend_connection and resume_connection hooks
  * 20120211.34 (2.4.10-dev) AP_DEFAULT_HANDLER_NAME/AP_IS_DEFAULT_HANDLER_NAME
- * 20120211.35 (2.4.10-dev) Add "r", "must_rebind", and last_backend_conn  
+ * 20120211.35 (2.4.10-dev) Add "r", "must_rebind", and last_backend_conn
                             to util_ldap_connection_t
  * 20120211.36 (2.4.10-dev) Add ap_copy_scoreboard_worker()
  * 20120211.37 (2.4.11-dev) Add r->trailers_{in,out}
@@ -442,7 +442,7 @@
  * 20120211.41 (2.4.11-dev) Add ap_proxy_de_socketfy to mod_proxy.h
  * 20120211.42 (2.4.13-dev) Add response_code_exprs to http_core.h
  * 20120211.43 (2.4.13-dev) Add keep_alive_timeout_set to server_rec
- * 20120211.44 (2.4.13-dev) Add cgi_pass_auth and AP_CGI_PASS_AUTH_* to 
+ * 20120211.44 (2.4.13-dev) Add cgi_pass_auth and AP_CGI_PASS_AUTH_* to
  *                          core_dir_config
  * 20120211.45 (2.4.13-dev) Add ap_proxy_connection_reusable()
  * 20120211.46 (2.4.13-dev) Add ap_map_http_request_error()
@@ -466,12 +466,15 @@
  *                          mod_proxy.h
  * 20120211.55 (2.4.19-dev) Add new ap_update_child_status...() methods,
  *                          add protocol to worker_score in scoreboard.h,
- *                          Add pre_close connection hook and 
+ *                          Add pre_close connection hook and
  *                          ap_prep_lingering_close().
  * 20120211.56 (2.4.19-dev) Split useragent_host from the conn_rec into
  *                          the request_rec, with ap_get_useragent_host()
  * 20120211.57 (2.4.19-dev) Add mod_ssl_openssl.h and OpenSSL-specific hooks
  * 20120211.58 (2.4.21-dev) Add cgi_var_rules to core_dir_config.
+ * 20120211.59 (2.4.21-dev) Add ap_getword_conf2[_nc](),
+ *                          ap_proxy_is_socket_connected() and
+ *                          extended proxy_worker_shared.
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */
@@ -479,7 +482,7 @@
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 20120211
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 58                   /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 59                   /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a

Modified: httpd/httpd/branches/2.4.x/include/httpd.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/include/httpd.h?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/include/httpd.h (original)
+++ httpd/httpd/branches/2.4.x/include/httpd.h Sat May 21 15:13:48 2016
@@ -1503,6 +1503,25 @@ AP_DECLARE(char *) ap_getword_conf(apr_p
 AP_DECLARE(char *) ap_getword_conf_nc(apr_pool_t *p, char **line);
 
 /**
+ * Get the second word in the string paying attention to quoting,
+ * with {...} supported as well as "..." and '...'
+ * @param p The pool to allocate from
+ * @param line The line to traverse
+ * @return A copy of the string
+ */
+AP_DECLARE(char *) ap_getword_conf2(apr_pool_t *p, const char **line);
+
+/**
+ * Get the second word in the string paying attention to quoting,
+ * with {...} supported as well as "..." and '...'
+ * @param p The pool to allocate from
+ * @param line The line to traverse
+ * @return A copy of the string
+ * @note The same as ap_getword_conf2(), except it doesn't use const char **.
+ */
+AP_DECLARE(char *) ap_getword_conf2_nc(apr_pool_t *p, char **line);
+
+/**
  * Check a string for any config define or environment variable construct
  * and replace each of them by the value of that variable, if it exists.
  * The default syntax of the constructs is ${ENV} but can be changed by

Modified: httpd/httpd/branches/2.4.x/modules/proxy/NWGNUmakefile
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/proxy/NWGNUmakefile?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/proxy/NWGNUmakefile (original)
+++ httpd/httpd/branches/2.4.x/modules/proxy/NWGNUmakefile Sat May 21 15:13:48 2016
@@ -161,6 +161,7 @@ TARGET_nlm = \
 	$(OBJDIR)/proxyfcgi.nlm \
 	$(OBJDIR)/proxyscgi.nlm \
 	$(OBJDIR)/proxyexpress.nlm \
+	$(OBJDIR)/proxyhcheck.nlm \
 	$(OBJDIR)/proxylbm_busy.nlm \
 	$(OBJDIR)/proxylbm_hb.nlm \
 	$(OBJDIR)/proxylbm_req.nlm \

Modified: httpd/httpd/branches/2.4.x/modules/proxy/config.m4
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/proxy/config.m4?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/proxy/config.m4 (original)
+++ httpd/httpd/branches/2.4.x/modules/proxy/config.m4 Sat May 21 15:13:48 2016
@@ -10,6 +10,10 @@ else
   proxy_mods_enable=most
 fi
 
+if test "$proxy_mods_enable" = "no"; then
+  enable_proxy_hcheck=no
+fi
+
 proxy_objs="mod_proxy.lo proxy_util.lo"
 APACHE_MODULE(proxy, Apache proxy module, $proxy_objs, , $proxy_mods_enable)
 
@@ -59,6 +63,7 @@ APACHE_MODULE(proxy_ajp, Apache proxy AJ
 APACHE_MODULE(proxy_balancer, Apache proxy BALANCER module.  Requires and is enabled by --enable-proxy., $proxy_balancer_objs, , $proxy_mods_enable,, proxy)
 
 APACHE_MODULE(proxy_express, mass reverse-proxy module. Requires --enable-proxy., , , $proxy_mods_enable,, proxy)
+APACHE_MODULE(proxy_hcheck, reverse-proxy health-check module. Requires --enable-proxy and --enable-watchdog., , , $enable_proxy_hcheck,, watchdog)
 
 APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
 

Modified: httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy.c?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy.c (original)
+++ httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy.c Sat May 21 15:13:48 2016
@@ -36,6 +36,40 @@ APR_DECLARE_OPTIONAL_FN(char *, ssl_var_
 #define MAX(x,y) ((x) >= (y) ? (x) : (y))
 #endif
 
+/*
+ * We do health-checks only if that (sub)module is loaded in. This
+ * allows for us to continue as is w/o requiring mod_watchdog for
+ * those implementations which aren't using health checks
+ */
+static APR_OPTIONAL_FN_TYPE(set_worker_hc_param) *set_worker_hc_param_f = NULL;
+
+/* Externals */
+proxy_hcmethods_t PROXY_DECLARE_DATA proxy_hcmethods[] = {
+    {NONE, "NONE", 1},
+    {TCP, "TCP", 1},
+    {OPTIONS, "OPTIONS", 1},
+    {HEAD, "HEAD", 1},
+    {GET, "GET", 1},
+    {CPING, "CPING", 0},
+    {PROVIDER, "PROVIDER", 0},
+    {EOT, NULL, 1}
+};
+
+proxy_wstat_t PROXY_DECLARE_DATA proxy_wstat_tbl[] = {
+    {PROXY_WORKER_INITIALIZED,   PROXY_WORKER_INITIALIZED_FLAG,   "Init "},
+    {PROXY_WORKER_IGNORE_ERRORS, PROXY_WORKER_IGNORE_ERRORS_FLAG, "Ign "},
+    {PROXY_WORKER_DRAIN,         PROXY_WORKER_DRAIN_FLAG,         "Drn "},
+    {PROXY_WORKER_GENERIC,       PROXY_WORKER_GENERIC_FLAG,       "Gen "},
+    {PROXY_WORKER_IN_SHUTDOWN,   PROXY_WORKER_IN_SHUTDOWN_FLAG,   "Shut "},
+    {PROXY_WORKER_DISABLED,      PROXY_WORKER_DISABLED_FLAG,      "Dis "},
+    {PROXY_WORKER_STOPPED,       PROXY_WORKER_STOPPED_FLAG,       "Stop "},
+    {PROXY_WORKER_IN_ERROR,      PROXY_WORKER_IN_ERROR_FLAG,      "Err "},
+    {PROXY_WORKER_HOT_STANDBY,   PROXY_WORKER_HOT_STANDBY_FLAG,   "Stby "},
+    {PROXY_WORKER_FREE,          PROXY_WORKER_FREE_FLAG,          "Free "},
+    {PROXY_WORKER_HC_FAIL,       PROXY_WORKER_HC_FAIL_FLAG,       "HcFl "},
+    {0x0, '\0', NULL}
+};
+
 static const char * const proxy_id = "proxy";
 apr_global_mutex_t *proxy_mutex = NULL;
 
@@ -56,6 +90,7 @@ apr_global_mutex_t *proxy_mutex = NULL;
 /* Translate the URL into a 'filename' */
 
 static const char *set_worker_param(apr_pool_t *p,
+                                    server_rec *s,
                                     proxy_worker *worker,
                                     const char *key,
                                     const char *val)
@@ -274,7 +309,11 @@ static const char *set_worker_param(apr_
         PROXY_STRNCPY(worker->s->flusher, val);
     }
     else {
-        return "unknown Worker parameter";
+        if (set_worker_hc_param_f) {
+            return set_worker_hc_param_f(p, s, worker, key, val, NULL);
+        } else {
+            return "unknown Worker parameter";
+        }
     }
     return NULL;
 }
@@ -1170,7 +1209,8 @@ static int proxy_handler(request_rec *r)
              * We can not failover to another worker.
              * Mark the worker as unusable if member of load balancer
              */
-            if (balancer) {
+            if (balancer
+                && !(worker->s->status & PROXY_WORKER_IGNORE_ERRORS)) {
                 worker->s->status |= PROXY_WORKER_IN_ERROR;
                 worker->s->error_time = apr_time_now();
             }
@@ -1181,7 +1221,8 @@ static int proxy_handler(request_rec *r)
              * We can failover to another worker
              * Mark the worker as unusable if member of load balancer
              */
-            if (balancer) {
+            if (balancer
+                && !(worker->s->status & PROXY_WORKER_IGNORE_ERRORS)) {
                 worker->s->status |= PROXY_WORKER_IN_ERROR;
                 worker->s->error_time = apr_time_now();
             }
@@ -1675,7 +1716,7 @@ static const char *
                              "Ignoring parameter '%s=%s' for worker '%s' because of worker sharing",
                              elts[i].key, elts[i].val, ap_proxy_worker_name(cmd->pool, worker));
             } else {
-                const char *err = set_worker_param(cmd->pool, worker, elts[i].key,
+                const char *err = set_worker_param(cmd->pool, s, worker, elts[i].key,
                                                    elts[i].val);
                 if (err)
                     return apr_pstrcat(cmd->temp_pool, "ProxyPass ", err, NULL);
@@ -2159,7 +2200,7 @@ static const char *add_member(cmd_parms
                          "Ignoring parameter '%s=%s' for worker '%s' because of worker sharing",
                          elts[i].key, elts[i].val, ap_proxy_worker_name(cmd->pool, worker));
         } else {
-            err = set_worker_param(cmd->pool, worker, elts[i].key,
+            err = set_worker_param(cmd->pool, cmd->server, worker, elts[i].key,
                                                elts[i].val);
             if (err)
                 return apr_pstrcat(cmd->temp_pool, "BalancerMember ", err, NULL);
@@ -2244,7 +2285,7 @@ static const char *
         else
             *val++ = '\0';
         if (worker)
-            err = set_worker_param(cmd->pool, worker, word, val);
+            err = set_worker_param(cmd->pool, cmd->server, worker, word, val);
         else
             err = set_balancer_param(conf, cmd->pool, balancer, word, val);
 
@@ -2383,7 +2424,7 @@ static const char *proxysection(cmd_parm
             else
                 *val++ = '\0';
             if (worker)
-                err = set_worker_param(cmd->pool, worker, word, val);
+                err = set_worker_param(cmd->pool, cmd->server, worker, word, val);
             else
                 err = set_balancer_param(sconf, cmd->pool, balancer,
                                          word, val);
@@ -2745,6 +2786,7 @@ static int proxy_pre_config(apr_pool_t *
                       APR_HOOK_MIDDLE);
     /* Reset workers count on gracefull restart */
     proxy_lb_workers = 0;
+    set_worker_hc_param_f = APR_RETRIEVE_OPTIONAL_FN(set_worker_hc_param);
     return OK;
 }
 static void register_hooks(apr_pool_t *p)
@@ -2757,8 +2799,8 @@ static void register_hooks(apr_pool_t *p
      * make sure that we are called after the mpm
      * initializes.
      */
-    static const char *const aszPred[] = { "mpm_winnt.c", "mod_proxy_balancer.c", NULL};
-
+    static const char *const aszPred[] = { "mpm_winnt.c", "mod_proxy_balancer.c",
+                                           "mod_proxy_hcheck.c", NULL};
     /* handler */
     ap_hook_handler(proxy_handler, NULL, NULL, APR_HOOK_FIRST);
     /* filename-to-URI translation */

Modified: httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy.h
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy.h?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy.h (original)
+++ httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy.h Sat May 21 15:13:48 2016
@@ -75,6 +75,22 @@ enum enctype {
     enc_path, enc_search, enc_user, enc_fpath, enc_parm
 };
 
+typedef enum {
+    NONE, TCP, OPTIONS, HEAD, GET, CPING, PROVIDER, EOT
+} hcmethod_t;
+
+typedef struct {
+    hcmethod_t method;
+    char *name;
+    int implemented;
+} proxy_hcmethods_t;
+
+typedef struct {
+    unsigned int bit;
+    char flag;
+    const char *name;
+} proxy_wstat_t;
+
 #define BALANCER_PREFIX "balancer://"
 
 #if APR_CHARSET_EBCDIC
@@ -139,7 +155,7 @@ typedef struct {
     proxy_worker       *reverse;    /* reverse "module-driven" proxy worker */
     const char *domain;     /* domain name to use in absence of a domain name in the request */
     const char *id;
-    apr_pool_t *pool;       /* Pool used for allocating this struct */
+    apr_pool_t *pool;       /* Pool used for allocating this struct's elements */
     int req;                /* true if proxy requests are enabled */
     int max_balancers;      /* maximum number of allowed balancers */
     int bgrowth;            /* number of post-config balancers can added */
@@ -270,8 +286,11 @@ struct proxy_conn_pool {
     proxy_conn_rec *conn;   /* Single connection for prefork mpm */
 };
 
-/* Keep below in sync with proxy_util.c! */
 /* worker status bits */
+/*
+ * NOTE: Keep up-to-date w/ proxy_wstat_tbl[]
+ * in mod_proxy.c !
+ */
 #define PROXY_WORKER_INITIALIZED    0x0001
 #define PROXY_WORKER_IGNORE_ERRORS  0x0002
 #define PROXY_WORKER_DRAIN          0x0004
@@ -282,6 +301,7 @@ struct proxy_conn_pool {
 #define PROXY_WORKER_IN_ERROR       0x0080
 #define PROXY_WORKER_HOT_STANDBY    0x0100
 #define PROXY_WORKER_FREE           0x0200
+#define PROXY_WORKER_HC_FAIL        0x0400
 
 /* worker status flags */
 #define PROXY_WORKER_INITIALIZED_FLAG    'O'
@@ -294,9 +314,11 @@ struct proxy_conn_pool {
 #define PROXY_WORKER_IN_ERROR_FLAG       'E'
 #define PROXY_WORKER_HOT_STANDBY_FLAG    'H'
 #define PROXY_WORKER_FREE_FLAG           'F'
+#define PROXY_WORKER_HC_FAIL_FLAG        'C'
 
 #define PROXY_WORKER_NOT_USABLE_BITMAP ( PROXY_WORKER_IN_SHUTDOWN | \
-PROXY_WORKER_DISABLED | PROXY_WORKER_STOPPED | PROXY_WORKER_IN_ERROR )
+PROXY_WORKER_DISABLED | PROXY_WORKER_STOPPED | PROXY_WORKER_IN_ERROR | \
+PROXY_WORKER_HC_FAIL )
 
 /* NOTE: these check the shared status */
 #define PROXY_WORKER_IS_INITIALIZED(f)  ( (f)->s->status &  PROXY_WORKER_INITIALIZED )
@@ -310,6 +332,10 @@ PROXY_WORKER_DISABLED | PROXY_WORKER_STO
 
 #define PROXY_WORKER_IS_GENERIC(f)   ( (f)->s->status &  PROXY_WORKER_GENERIC )
 
+#define PROXY_WORKER_IS_HCFAILED(f)   ( (f)->s->status &  PROXY_WORKER_HC_FAIL )
+
+#define PROXY_WORKER_IS(f, b)   ( (f)->s->status & (b) )
+
 /* default worker retry timeout in seconds */
 #define PROXY_WORKER_DEFAULT_RETRY    60
 
@@ -404,6 +430,14 @@ typedef struct {
     unsigned int     keepalive_set:1;
     unsigned int     disablereuse_set:1;
     unsigned int     was_malloced:1;
+    char      hcuri[PROXY_WORKER_MAX_ROUTE_SIZE];     /* health check uri */
+    char      hcexpr[PROXY_WORKER_MAX_SCHEME_SIZE];   /* name of condition expr for health check */
+    int             passes;     /* number of successes for check to pass */
+    int             pcount;     /* current count of passes */
+    int             fails;      /* number of failures for check to fail */
+    int             fcount;     /* current count of failures */
+    hcmethod_t      method;     /* method to use for health check */
+    apr_interval_time_t interval;
 } proxy_worker_shared;
 
 #define ALIGNED_PROXY_WORKER_SHARED_SIZE (APR_ALIGN_DEFAULT(sizeof(proxy_worker_shared)))
@@ -419,6 +453,11 @@ struct proxy_worker {
     void            *context;   /* general purpose storage */
 };
 
+/* default to health check every 30 seconds */
+#define HCHECK_WATHCHDOG_DEFAULT_INTERVAL (30)
+/* The watchdog runs every 2 seconds, which is also the minimal check */
+#define HCHECK_WATHCHDOG_INTERVAL (2)
+
 /*
  * Time to wait (in microseconds) to find out if more data is currently
  * available at the backend.
@@ -509,6 +548,26 @@ struct proxy_balancer_method {
 #define PROXY_DECLARE_DATA             __declspec(dllimport)
 #endif
 
+/* Using PROXY_DECLARE_OPTIONAL_HOOK instead of
+ * APR_DECLARE_EXTERNAL_HOOK allows build/make_nw_export.awk
+ * to distinguish between hooks that implement
+ * proxy_hook_xx and proxy_hook_get_xx in mod_proxy.c and
+ * those which don't.
+ */
+#define PROXY_DECLARE_OPTIONAL_HOOK APR_DECLARE_EXTERNAL_HOOK
+
+/* These 2 are in mod_proxy.c */
+extern PROXY_DECLARE_DATA proxy_hcmethods_t proxy_hcmethods[];
+extern PROXY_DECLARE_DATA proxy_wstat_t proxy_wstat_tbl[];
+
+/* Following 4 from health check */
+APR_DECLARE_OPTIONAL_FN(void, hc_show_exprs, (request_rec *));
+APR_DECLARE_OPTIONAL_FN(void, hc_select_exprs, (request_rec *, const char *));
+APR_DECLARE_OPTIONAL_FN(int, hc_valid_expr, (request_rec *, const char *));
+APR_DECLARE_OPTIONAL_FN(const char *, set_worker_hc_param,
+                        (apr_pool_t *, server_rec *, proxy_worker *,
+                         const char *, const char *, void *));
+
 APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, scheme_handler, (request_rec *r,
                           proxy_worker *worker, proxy_server_conf *conf, char *url,
                           const char *proxyhost, apr_port_t proxyport))
@@ -1020,6 +1079,12 @@ PROXY_DECLARE(int) ap_proxy_pass_brigade
 APR_DECLARE_OPTIONAL_FN(int, ap_proxy_clear_connection,
         (request_rec *r, apr_table_t *headers));
 
+/**
+ * @param socket        socket to test
+ * @return              TRUE if socket is connected/active
+ */
+PROXY_DECLARE(int) ap_proxy_is_socket_connected(apr_socket_t *socket);
+
 #define PROXY_LBMETHOD "proxylbmethod"
 
 /* The number of dynamic workers that can be added when reconfiguring.
@@ -1041,6 +1106,13 @@ int ap_proxy_lb_workers(void);
 PROXY_DECLARE(apr_port_t) ap_proxy_port_of_scheme(const char *scheme);
 
 /**
+ * Return the name of the health check method (eg: "OPTIONS").
+ * @param method        method enum
+ * @return              name of method
+ */
+PROXY_DECLARE (const char *) ap_proxy_show_hcmethod(hcmethod_t method);
+
+/**
  * Strip a unix domain socket (UDS) prefix from the input URL
  * @param p             pool to allocate result from
  * @param url           a URL potentially prefixed with a UDS path

Modified: httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_balancer.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_balancer.c?rev=1744951&r1=1744950&r2=1744951&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_balancer.c (original)
+++ httpd/httpd/branches/2.4.x/modules/proxy/mod_proxy_balancer.c Sat May 21 15:13:48 2016
@@ -28,9 +28,16 @@ ap_slotmem_provider_t *storage = NULL;
 
 module AP_MODULE_DECLARE_DATA proxy_balancer_module;
 
+static APR_OPTIONAL_FN_TYPE(set_worker_hc_param) *set_worker_hc_param_f = NULL;
+
 static int (*ap_proxy_retry_worker_fn)(const char *proxy_function,
         proxy_worker *worker, server_rec *s) = NULL;
 
+static APR_OPTIONAL_FN_TYPE(hc_show_exprs) *hc_show_exprs_f = NULL;
+static APR_OPTIONAL_FN_TYPE(hc_select_exprs) *hc_select_exprs_f = NULL;
+static APR_OPTIONAL_FN_TYPE(hc_valid_expr) *hc_valid_expr_f = NULL;
+
+
 /*
  * Register our mutex type before the config is read so we
  * can adjust the mutex settings using the Mutex directive.
@@ -46,7 +53,10 @@ static int balancer_pre_config(apr_pool_
     if (rv != APR_SUCCESS) {
         return rv;
     }
-
+    set_worker_hc_param_f = APR_RETRIEVE_OPTIONAL_FN(set_worker_hc_param);
+    hc_show_exprs_f = APR_RETRIEVE_OPTIONAL_FN(hc_show_exprs);
+    hc_select_exprs_f = APR_RETRIEVE_OPTIONAL_FN(hc_select_exprs);
+    hc_valid_expr_f = APR_RETRIEVE_OPTIONAL_FN(hc_valid_expr);
     return OK;
 }
 
@@ -633,7 +643,8 @@ static int proxy_balancer_post_request(p
         return HTTP_INTERNAL_SERVER_ERROR;
     }
 
-    if (!apr_is_empty_array(balancer->errstatuses)) {
+    if (!apr_is_empty_array(balancer->errstatuses)
+        && !(worker->s->status & PROXY_WORKER_IGNORE_ERRORS)) {
         int i;
         for (i = 0; i < balancer->errstatuses->nelts; i++) {
             int val = ((int *)balancer->errstatuses->elts)[i];
@@ -652,6 +663,7 @@ static int proxy_balancer_post_request(p
     }
 
     if (balancer->failontimeout
+        && !(worker->s->status & PROXY_WORKER_IGNORE_ERRORS)
         && (apr_table_get(r->notes, "proxy_timedout")) != NULL) {
         ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(02460)
                       "%s: Forcing worker (%s) into error state "
@@ -920,10 +932,10 @@ static int balancer_post_config(apr_pool
 
 static void create_radio(const char *name, unsigned int flag, request_rec *r)
 {
-    ap_rvputs(r, "<td>On <input name='", name, "' id='", name, "' value='1' type=radio", NULL);
+    ap_rvputs(r, "<td><label for='", name, "1'>On</label> <input name='", name, "' id='", name, "1' value='1' type=radio", NULL);
     if (flag)
         ap_rputs(" checked", r);
-    ap_rvputs(r, "> <br/> Off <input name='", name, "' id='", name, "' value='0' type=radio", NULL);
+    ap_rvputs(r, "> <br/> <label for='", name, "0'>Off</label> <input name='", name, "' id='", name, "0' value='0' type=radio", NULL);
     if (!flag)
         ap_rputs(" checked", r);
     ap_rputs("></td>\n", r);
@@ -1093,17 +1105,27 @@ static int balancer_handler(request_rec
             else
                 *wsel->s->redirect = '\0';
         }
+        /*
+         * TODO: Look for all 'w_status_#' keys and then loop thru
+         * on that # character, since the character == the flag
+         */
         if ((val = apr_table_get(params, "w_status_I"))) {
-            ap_proxy_set_wstatus('I', atoi(val), wsel);
+            ap_proxy_set_wstatus(PROXY_WORKER_IGNORE_ERRORS_FLAG, atoi(val), wsel);
         }
         if ((val = apr_table_get(params, "w_status_N"))) {
-            ap_proxy_set_wstatus('N', atoi(val), wsel);
+            ap_proxy_set_wstatus(PROXY_WORKER_DRAIN_FLAG, atoi(val), wsel);
         }
         if ((val = apr_table_get(params, "w_status_D"))) {
-            ap_proxy_set_wstatus('D', atoi(val), wsel);
+            ap_proxy_set_wstatus(PROXY_WORKER_DISABLED_FLAG, atoi(val), wsel);
         }
         if ((val = apr_table_get(params, "w_status_H"))) {
-            ap_proxy_set_wstatus('H', atoi(val), wsel);
+            ap_proxy_set_wstatus(PROXY_WORKER_HOT_STANDBY_FLAG, atoi(val), wsel);
+        }
+        if ((val = apr_table_get(params, "w_status_S"))) {
+            ap_proxy_set_wstatus(PROXY_WORKER_STOPPED_FLAG, atoi(val), wsel);
+        }
+        if ((val = apr_table_get(params, "w_status_C"))) {
+            ap_proxy_set_wstatus(PROXY_WORKER_HC_FAIL_FLAG, atoi(val), wsel);
         }
         if ((val = apr_table_get(params, "w_ls"))) {
             int ival = atoi(val);
@@ -1111,6 +1133,47 @@ static int balancer_handler(request_rec
                 wsel->s->lbset = ival;
              }
         }
+        if ((val = apr_table_get(params, "w_hi"))) {
+            int ival = atoi(val);
+            if (ival >= HCHECK_WATHCHDOG_INTERVAL) {
+                wsel->s->interval = apr_time_from_sec(ival);
+             }
+        }
+        if ((val = apr_table_get(params, "w_hp"))) {
+            int ival = atoi(val);
+            if (ival >= 1) {
+                wsel->s->passes = ival;
+             }
+        }
+        if ((val = apr_table_get(params, "w_hf"))) {
+            int ival = atoi(val);
+            if (ival >= 1) {
+                wsel->s->fails = ival;
+             }
+        }
+        if ((val = apr_table_get(params, "w_hm"))) {
+            proxy_hcmethods_t *method = proxy_hcmethods;
+            for (; method->name; method++) {
+                if (!strcasecmp(method->name, val) && method->implemented)
+                    wsel->s->method = method->method;
+            }
+        }
+        if ((val = apr_table_get(params, "w_hu"))) {
+            if (strlen(val) && strlen(val) < sizeof(wsel->s->hcuri))
+                strcpy(wsel->s->hcuri, val);
+            else
+                *wsel->s->hcuri = '\0';
+        }
+        if (hc_valid_expr_f && (val = apr_table_get(params, "w_he"))) {
+            if (strlen(val) && hc_valid_expr_f(r, val) && strlen(val) < sizeof(wsel->s->hcexpr))
+                strcpy(wsel->s->hcexpr, val);
+            else
+                *wsel->s->hcexpr = '\0';
+        }
+        /* If the health check method doesn't support an expr, then null it */
+        if (wsel->s->method == NONE || wsel->s->method == TCP) {
+            *wsel->s->hcexpr = '\0';
+        }
         /* if enabling, we need to reset all lb params */
         if (bsel && !was_usable && PROXY_WORKER_IS_USABLE(wsel)) {
             bsel->s->need_reset = 1;
@@ -1228,7 +1291,7 @@ static int balancer_handler(request_rec
                     /* sync all timestamps */
                     bsel->wupdated = bsel->s->wupdated = nworker->s->updated = apr_time_now();
                     /* by default, all new workers are disabled */
-                    ap_proxy_set_wstatus('D', 1, nworker);
+                    ap_proxy_set_wstatus(PROXY_WORKER_DISABLED_FLAG, 1, nworker);
                 }
                 if ((rv = PROXY_GLOBAL_UNLOCK(bsel)) != APR_SUCCESS) {
                     ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01203)
@@ -1331,18 +1394,7 @@ static int balancer_handler(request_rec
                 }
                 /* Begin proxy_worker_stat */
                 ap_rputs("          <httpd:status>", r);
-                if (worker->s->status & PROXY_WORKER_DISABLED)
-                    ap_rputs("Disabled", r);
-                else if (worker->s->status & PROXY_WORKER_IN_ERROR)
-                    ap_rputs("Error", r);
-                else if (worker->s->status & PROXY_WORKER_STOPPED)
-                    ap_rputs("Stopped", r);
-                else if (worker->s->status & PROXY_WORKER_HOT_STANDBY)
-                    ap_rputs("Standby", r);
-                else if (PROXY_WORKER_IS_USABLE(worker))
-                    ap_rputs("OK", r);
-                else if (!PROXY_WORKER_IS_INITIALIZED(worker))
-                    ap_rputs("Uninitialized", r);
+                ap_rputs(ap_proxy_parse_wstatus(r->pool, worker), r);
                 ap_rputs("</httpd:status>\n", r);
                 if ((worker->s->error_time > 0) && apr_rfc822_date(date, worker->s->error_time) == APR_SUCCESS) {
                     ap_rvputs(r, "          <httpd:error_time>", date,
@@ -1447,7 +1499,7 @@ static int balancer_handler(request_rec
                  " padding: 2px;\n"
                  " border-style: dotted;\n"
                  " border-color: gray;\n"
-                 " background-color: white;\n"
+                 " background-color: lightgray;\n"
                  " text-align: center;\n"
                  "}\n"
                  "td {\n"
@@ -1477,10 +1529,10 @@ static int balancer_handler(request_rec
         for (i = 0; i < conf->balancers->nelts; i++) {
 
             ap_rputs("<hr />\n<h3>LoadBalancer Status for ", r);
-            ap_rvputs(r, "<a href=\"", ap_escape_uri(r->pool, r->uri), "?b=",
+            ap_rvputs(r, "<a href='", ap_escape_uri(r->pool, r->uri), "?b=",
                       balancer->s->name + sizeof(BALANCER_PREFIX) - 1,
-                      "&nonce=", balancer->s->nonce,
-                      "\">", NULL);
+                      "&amp;nonce=", balancer->s->nonce,
+                      "'>", NULL);
             ap_rvputs(r, balancer->s->name, "</a> [",balancer->s->sname, "]</h3>\n", NULL);
             ap_rputs("\n\n<table><tr>"
                 "<th>MaxMembers</th><th>StickySession</th><th>DisableFailover</th><th>Timeout</th><th>FailoverAttempts</th><th>Method</th>"
@@ -1501,9 +1553,9 @@ static int balancer_handler(request_rec
             else {
                 ap_rputs("<td> (None) ", r);
             }
-            ap_rprintf(r, "<td>%s</td>\n",
+            ap_rprintf(r, "</td><td>%s</td>\n",
                        balancer->s->sticky_force ? "On" : "Off");
-            ap_rprintf(r, "</td><td>%" APR_TIME_T_FMT "</td>",
+            ap_rprintf(r, "<td>%" APR_TIME_T_FMT "</td>",
                 apr_time_sec(balancer->s->timeout));
             ap_rprintf(r, "<td>%d</td>\n", balancer->s->max_attempts);
             ap_rprintf(r, "<td>%s</td>\n",
@@ -1520,19 +1572,22 @@ static int balancer_handler(request_rec
                 "<th>Worker URL</th>"
                 "<th>Route</th><th>RouteRedir</th>"
                 "<th>Factor</th><th>Set</th><th>Status</th>"
-                "<th>Elected</th><th>Busy</th><th>Load</th><th>To</th><th>From</th>"
-                "</tr>\n", r);
+                "<th>Elected</th><th>Busy</th><th>Load</th><th>To</th><th>From</th>", r);
+            if (set_worker_hc_param_f) {
+                ap_rputs("<th>HC Method</th><th>HC Interval</th><th>Passes</th><th>Fails</th><th>HC uri</th><th>HC Expr</th>", r);
+            }
+            ap_rputs("</tr>\n", r);
 
             workers = (proxy_worker **)balancer->workers->elts;
             for (n = 0; n < balancer->workers->nelts; n++) {
                 char fbuf[50];
                 worker = *workers;
-                ap_rvputs(r, "<tr>\n<td><a href=\"",
+                ap_rvputs(r, "<tr>\n<td><a href='",
                           ap_escape_uri(r->pool, r->uri), "?b=",
-                          balancer->s->name + sizeof(BALANCER_PREFIX) - 1, "&w=",
+                          balancer->s->name + sizeof(BALANCER_PREFIX) - 1, "&amp;w=",
                           ap_escape_uri(r->pool, worker->s->name),
-                          "&nonce=", balancer->s->nonce,
-                          "\">", NULL);
+                          "&amp;nonce=", balancer->s->nonce,
+                          "'>", NULL);
                 ap_rvputs(r, (*worker->s->uds_path ? "<i>" : ""), ap_proxy_worker_name(r->pool, worker),
                           (*worker->s->uds_path ? "</i>" : ""), "</a></td>", NULL);
                 ap_rvputs(r, "<td>", ap_escape_html(r->pool, worker->s->route),
@@ -1549,6 +1604,14 @@ static int balancer_handler(request_rec
                 ap_rputs(apr_strfsize(worker->s->transferred, fbuf), r);
                 ap_rputs("</td><td>", r);
                 ap_rputs(apr_strfsize(worker->s->read, fbuf), r);
+                if (set_worker_hc_param_f) {
+                    ap_rprintf(r, "</td><td>%s</td>", ap_proxy_show_hcmethod(worker->s->method));
+                    ap_rprintf(r, "<td>%d</td>", (int)apr_time_sec(worker->s->interval));
+                    ap_rprintf(r, "<td>%d (%d)</td>", worker->s->passes,worker->s->pcount);
+                    ap_rprintf(r, "<td>%d (%d)</td>", worker->s->fails, worker->s->fcount);
+                    ap_rprintf(r, "<td>%s</td>", worker->s->hcuri);
+                    ap_rprintf(r, "<td>%s", worker->s->hcexpr);
+                }
                 ap_rputs("</td></tr>\n", r);
 
                 ++workers;
@@ -1557,35 +1620,72 @@ static int balancer_handler(request_rec
             ++balancer;
         }
         ap_rputs("<hr />\n", r);
+        if (hc_show_exprs_f) {
+            hc_show_exprs_f(r);
+        }
         if (wsel && bsel) {
             ap_rputs("<h3>Edit worker settings for ", r);
             ap_rvputs(r, (*wsel->s->uds_path?"<i>":""), ap_proxy_worker_name(r->pool, wsel), (*wsel->s->uds_path?"</i>":""), "</h3>\n", NULL);
-            ap_rputs("<form method=\"POST\" enctype=\"application/x-www-form-urlencoded\" action=\"", r);
-            ap_rvputs(r, ap_escape_uri(r->pool, action), "\">\n", NULL);
-            ap_rputs("<dl>\n<table><tr><td>Load factor:</td><td><input name='w_lf' id='w_lf' type=text ", r);
+            ap_rputs("<form method='POST' enctype='application/x-www-form-urlencoded' action='", r);
+            ap_rvputs(r, ap_escape_uri(r->pool, action), "'>\n", NULL);
+            ap_rputs("<table><tr><td>Load factor:</td><td><input name='w_lf' id='w_lf' type=text ", r);
             ap_rprintf(r, "value='%d'></td></tr>\n", wsel->s->lbfactor);
             ap_rputs("<tr><td>LB Set:</td><td><input name='w_ls' id='w_ls' type=text ", r);
             ap_rprintf(r, "value='%d'></td></tr>\n", wsel->s->lbset);
             ap_rputs("<tr><td>Route:</td><td><input name='w_wr' id='w_wr' type=text ", r);
-            ap_rvputs(r, "value=\"", ap_escape_html(r->pool, wsel->s->route),
+            ap_rvputs(r, "value='", ap_escape_html(r->pool, wsel->s->route),
                       NULL);
-            ap_rputs("\"></td></tr>\n", r);
+            ap_rputs("'></td></tr>\n", r);
             ap_rputs("<tr><td>Route Redirect:</td><td><input name='w_rr' id='w_rr' type=text ", r);
-            ap_rvputs(r, "value=\"", ap_escape_html(r->pool, wsel->s->redirect),
+            ap_rvputs(r, "value='", ap_escape_html(r->pool, wsel->s->redirect),
                       NULL);
-            ap_rputs("\"></td></tr>\n", r);
+            ap_rputs("'></td></tr>\n", r);
             ap_rputs("<tr><td>Status:</td>", r);
             ap_rputs("<td><table><tr>"
                      "<th>Ignore Errors</th>"
                      "<th>Draining Mode</th>"
                      "<th>Disabled</th>"
-                     "<th>Hot Standby</th></tr>\n<tr>", r);
-            create_radio("w_status_I", (PROXY_WORKER_IGNORE_ERRORS & wsel->s->status), r);
-            create_radio("w_status_N", (PROXY_WORKER_DRAIN & wsel->s->status), r);
-            create_radio("w_status_D", (PROXY_WORKER_DISABLED & wsel->s->status), r);
-            create_radio("w_status_H", (PROXY_WORKER_HOT_STANDBY & wsel->s->status), r);
-            ap_rputs("</tr></table>\n", r);
-            ap_rputs("<tr><td colspan=2><input type=submit value='Submit'></td></tr>\n", r);
+                     "<th>Hot Standby</th>", r);
+            if (hc_show_exprs_f) {
+                ap_rputs("<th>HC Fail</th>", r);
+            }
+            ap_rputs("<th>Stopped</th></tr>\n<tr>", r);
+            create_radio("w_status_I", (PROXY_WORKER_IS(wsel, PROXY_WORKER_IGNORE_ERRORS)), r);
+            create_radio("w_status_N", (PROXY_WORKER_IS(wsel, PROXY_WORKER_DRAIN)), r);
+            create_radio("w_status_D", (PROXY_WORKER_IS(wsel, PROXY_WORKER_DISABLED)), r);
+            create_radio("w_status_H", (PROXY_WORKER_IS(wsel, PROXY_WORKER_HOT_STANDBY)), r);
+            if (hc_show_exprs_f) {
+                create_radio("w_status_C", (PROXY_WORKER_IS(wsel, PROXY_WORKER_HC_FAIL)), r);
+            }
+            create_radio("w_status_S", (PROXY_WORKER_IS(wsel, PROXY_WORKER_STOPPED)), r);
+            ap_rputs("</tr></table></td></tr>\n", r);
+            if (hc_select_exprs_f) {
+                proxy_hcmethods_t *method = proxy_hcmethods;
+                ap_rputs("<tr><td colspan='2'>\n<table align='center'><tr><th>Health Check param</th><th>Value</th></tr>\n", r);
+                ap_rputs("<tr><td>Method</td><td><select name='w_hm'>\n", r);
+                for (; method->name; method++) {
+                    if (method->implemented) {
+                        ap_rprintf(r, "<option value='%s' %s >%s</option>\n",
+                                method->name,
+                                (wsel->s->method == method->method) ? "selected" : "",
+                                method->name);
+                    }
+                }
+                ap_rputs("</select>\n</td></tr>\n", r);
+                ap_rputs("<tr><td>Expr</td><td><select name='w_he'>\n", r);
+                hc_select_exprs_f(r, wsel->s->hcexpr);
+                ap_rputs("</select>\n</td></tr>\n", r);
+                ap_rprintf(r, "<tr><td>Interval (secs)</td><td><input name='w_hi' id='w_hi' type='text'"
+                           "value='%d'></td></tr>\n", (int)apr_time_sec(wsel->s->interval));
+                ap_rprintf(r, "<tr><td>Passes trigger</td><td><input name='w_hp' id='w_hp' type='text'"
+                           "value='%d'></td></tr>\n", wsel->s->passes);
+                ap_rprintf(r, "<tr><td>Fails trigger)</td><td><input name='w_hf' id='w_hf' type='text'"
+                           "value='%d'></td></tr>\n", wsel->s->fails);
+                ap_rprintf(r, "<tr><td>HC uri</td><td><input name='w_hu' id='w_hu' type='text'"
+                        "value='%s'</td></tr>\n", ap_escape_html(r->pool, wsel->s->hcuri));
+                ap_rputs("</table>\n</td></tr>\n", r);
+            }
+            ap_rputs("<tr><td colspan='2'><input type=submit value='Submit'></td></tr>\n", r);
             ap_rvputs(r, "</table>\n<input type=hidden name='w' id='w' ",  NULL);
             ap_rvputs(r, "value='", ap_escape_uri(r->pool, wsel->s->name), "'>\n", NULL);
             ap_rvputs(r, "<input type=hidden name='b' id='b' ", NULL);
@@ -1603,7 +1703,7 @@ static int balancer_handler(request_rec
             ap_rvputs(r, bsel->s->name, "</h3>\n", NULL);
             ap_rputs("<form method='POST' enctype='application/x-www-form-urlencoded' action='", r);
             ap_rvputs(r, ap_escape_uri(r->pool, action), "'>\n", NULL);
-            ap_rputs("<dl>\n<table>\n", r);
+            ap_rputs("<table>\n", r);
             provs = ap_list_provider_names(r->pool, PROXY_LBMETHOD, "0");
             if (provs) {
                 ap_rputs("<tr><td>LBmethod:</td>", r);