mirror of
https://github.com/apache/httpd.git
synced 2025-08-13 14:40:20 +00:00

Commit framework impl of health-check module plus required changes. The actual health checking is currently in progress, but wanted to add in at this stage. Make aware of new status: Failed Health Check. Store the number of current passes/fails in shm finish looping logic... place-holder for actual checking Better check move to per server conf, useful for adding HealthCheckCondition Now implement the condition ruleset definition. The actual checking will be done in the actual health check routine. just check watched servers... use 'hc' prefix for sub directives Check that we have names for both templates and conditions command changes Don't bother w/ methods that return bodies. We don't handle them now anyway. Use enums and structs to keep things better organized 1st cut of 'simple' tcp check... We reuse various proxy function and so this *could* be more streamlined, but use this to show how the other would work, since we need brigades, SSL/TLS support, etc. Since every check needs this, do this in the main check loop. Allows some optimizations. move scope pull this out... large enough for a func Move to a set of health check workers, mapping to each worker itself, instead of a single reused generic worker. some ordering optimization Make balancer manager health-check aware And we now allow for health checks via OPTIONS * Leverage the OPTIONS code for HEAD as well... So we now support: TCP, OPTIONS and HEAD. Right now, anything other than an error (even a 404) is consider a PASS. Fill in APLOGNO. I hope that doesn't result in merge trouble for Jim. Open up hook/scar to allow for passes/fails and method to be changed via bal-man... OPTIONS/HEAD proxy function should be diff from simple TCP check For OPTIONS and HEAD, only 2xx and 3xx are considered "passing" (until I implement the conditions expr testing)... honor the pass/fail count and LOG_INFO when the health check enables or disables a backend worker. Start impl of expr conditions for runtime checks Adjust log levels correct error string Use worker status character defines taken from mod_proxy.h instead of explicit characters. Noted by rpluem. With the updated ap_expr, we can now check for the returned response body, stored in kept_body Assign log message tags Implement expr lookup in mod_proxy_hcheck for variables whose names start with "HC_" and for the new function hc(). Currently only HC_BODY and hc(body) are supported. Both return the saved body of the health check response to be used in an expr that decides about success of a check. Fix copy&paste error in new function. Try fixing new proxy_hcheck expr extension. Interestingly mod_ssl using NULL as well, but some other module I wrote uses parms->name. Adjust clash :) Enabling a worker via health-check also moves them out of ERROR more (which may have been set via the static "health" check done via mod_proxy). Some flow improvements... Submitted by: jim, rjung, jim, jim, jim, jim, jim, jim, rjung, jim, jim, rjung, rjung, rjung, jim, jim, olegk, jim, jim Reviewed/backported by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1744951 13f79535-47bb-0310-9956-ffa450edef68
114 lines
4.3 KiB
XML
114 lines
4.3 KiB
XML
<?xml version="1.0" encoding="EUC-KR" ?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
|
|
<!-- English Revision: 105989:1744186 (outdated) -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_authn_dbm.xml.meta">
|
|
|
|
<name>mod_authn_dbm</name>
|
|
<description>DBM 파일을 사용한 사용자 인증</description>
|
|
<status>Extension</status>
|
|
<sourcefile>mod_authn_dbm.c</sourcefile>
|
|
<identifier>authn_dbm_module</identifier>
|
|
<compatibility>아파치 2.1 이후부터</compatibility>
|
|
|
|
<summary>
|
|
<p>이 모듈은 <module>mod_auth_digest</module>나
|
|
<module>mod_auth_basic</module> 인증앞단모듈을 위해
|
|
<dfn>dbm</dfn> 암호파일에서 사용자를 찾아서 인증한다.
|
|
<module>mod_authn_file</module>과 기능이 비슷한다.</p>
|
|
|
|
<p><module>mod_auth_basic</module>이나
|
|
<module>mod_auth_digest</module>를 사용할때 <directive
|
|
module="mod_auth_basic">AuthBasicProvider</directive>나
|
|
<directive module="mod_auth_digest">AuthDigestProvider</directive>의
|
|
값으로 <code>dbm</code>을 설정하면 이 모듈을 사용한다.</p>
|
|
</summary>
|
|
|
|
<seealso><directive module="core">AuthName</directive></seealso>
|
|
<seealso><directive module="core">AuthType</directive></seealso>
|
|
<seealso>
|
|
<directive module="mod_auth_basic">AuthBasicProvider</directive>
|
|
</seealso>
|
|
<seealso>
|
|
<directive module="mod_auth_digest">AuthDigestProvider</directive>
|
|
</seealso>
|
|
|
|
<directivesynopsis>
|
|
<name>AuthDBMUserFile</name>
|
|
<description>인증할 사용자와 암호 목록을 저장하는 데이터베이스
|
|
파일명을 지정한다</description>
|
|
<syntax>AuthDBMUserFile <var>file-path</var></syntax>
|
|
<contextlist><context>directory</context><context>.htaccess</context>
|
|
</contextlist>
|
|
<override>AuthConfig</override>
|
|
|
|
<usage>
|
|
<p><directive>AuthDBMUserFile</directive> 지시어는 사용자
|
|
인증에 사용할 사용자와 암호 목록을 저장하는 DBM 파일명을
|
|
지정한다. <var>File-path</var>는 파일의 절대경로이다.</p>
|
|
|
|
<p>파일은 사용자명을 키로 사용한다. 사용자에 대한 값은
|
|
인코딩된 암호이다. 암호 뒤에 콜론과 임의의 정보가 나올 수
|
|
있다. 서버는 콜론과 뒤에 나오는 정보를 무시한다.</p>
|
|
|
|
<note type="warning"><title>보안:</title>
|
|
<p><directive>AuthDBMUserFile</directive>이 웹서버의 문서들
|
|
밖에 있음을 확인하라. 이 파일을 보호할 디렉토리 안에 같이
|
|
두지 <em>마라</em>. 그렇지 않으면, 클라이언트가
|
|
<directive>AuthDBMUserFile</directive>을 다운로드할 수
|
|
있다.</p>
|
|
</note>
|
|
|
|
<p>중요한 호환성 주의: 아파치 모듈의 <code>dbmopen</code>
|
|
구현은 문자열 끝의 NULL에 의존하지않고 DBM 자료구조에서
|
|
해싱값의 문자열 길이를 읽는다. Netscape 웹서버 등 어떤
|
|
프로그램은 문자열이 NULL로 끝난다고 가정하기때문에 여러
|
|
프로그램이 DBM 파일을 사용하면 문제가 될 수 있다.</p>
|
|
|
|
<p>아파치는 <a href="../programs/dbmmanage.html">dbmmanage</a>라는
|
|
Perl 스크립트를 포함한다. 이 프로그램은 이 모듈이 사용할
|
|
DBM형식 암호파일을 만들고 수정한다.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>AuthDBMType</name>
|
|
<description>암호를 저장하는 데이터베이스 파일 종류를
|
|
지정한다</description>
|
|
<syntax>AuthDBMType default|SDBM|GDBM|NDBM|DB</syntax>
|
|
<default>AuthDBMType default</default>
|
|
<contextlist><context>directory</context><context>.htaccess</context>
|
|
</contextlist>
|
|
<override>AuthConfig</override>
|
|
|
|
<usage>
|
|
<p>암호를 저장하는 데이터베이스 파일 종류를 지정한다. 기본
|
|
데이터베이스 종류는 컴파일때 판단한다. 사용할 수 있는 다른
|
|
데이터베이스 파일 종류도 <a href="../install.html#dbm">컴파일
|
|
설정</a>에 달렸다.</p>
|
|
|
|
<p>암호파일을 만드는 프로그램이 같은 종류의 데이터베이스를
|
|
사용하도록 설정해야 한다.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|