From 0e8348c500bac5303a3b7f2ffee4b7ded05558ff Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Mon, 4 Oct 2004 15:04:06 +0000 Subject: [PATCH] nginx-0.1.0-RELEASE import *) The first public version. --- conf/koi-win | 85 +++ conf/mime.types | 24 + conf/nginx.conf | 37 ++ docs/dtd/change_log_conf.dtd | 22 + docs/dtd/changes.dtd | 21 + docs/html/index.html | 8 + docs/text/LICENSE | 25 + docs/text/README | 3 + docs/xml/change_log_conf.xml | 45 ++ docs/xml/nginx/changes.xml | 979 +++++++++++++++++++++++++++++++++++ docs/xsls/changes.xsls | 118 +++++ docs/xsls/dump.xsls | 29 ++ docs/xslt/changes.xslt | 158 ++++++ src/os/unix/ngx_linux_init.c | 2 +- 14 files changed, 1555 insertions(+), 1 deletion(-) create mode 100644 conf/koi-win create mode 100644 conf/mime.types create mode 100644 conf/nginx.conf create mode 100644 docs/dtd/change_log_conf.dtd create mode 100644 docs/dtd/changes.dtd create mode 100644 docs/html/index.html create mode 100644 docs/text/LICENSE create mode 100644 docs/text/README create mode 100644 docs/xml/change_log_conf.xml create mode 100644 docs/xml/nginx/changes.xml create mode 100644 docs/xsls/changes.xsls create mode 100644 docs/xsls/dump.xsls create mode 100644 docs/xslt/changes.xslt diff --git a/conf/koi-win b/conf/koi-win new file mode 100644 index 000000000..92cabb140 --- /dev/null +++ b/conf/koi-win @@ -0,0 +1,85 @@ + +charset_map koi8-r windows-1251 { + + 95 95 ; # bullet + + 9A A0 ; #   + + 9C B0 ; # ° + + 9E B7 ; # · + + A3 B8 ; # small yo + + B3 A8 ; # capital YO + + BF A9 ; # (C) + + C0 FE ; # small yu + C1 E0 ; # small a + C2 E1 ; # small b + C3 F6 ; # small ts + C4 E4 ; # small d + C5 E5 ; # small ye + C6 F4 ; # small f + C7 E3 ; # small g + C8 F5 ; # small kh + C9 E8 ; # small i + CA E9 ; # small j + CB EA ; # small k + CC EB ; # small l + CD EC ; # small m + CE ED ; # small n + CF EE ; # small o + + D0 EF ; # small p + D1 FF ; # small ya + D2 F0 ; # small r + D3 F1 ; # small s + D4 F2 ; # small t + D5 F3 ; # small u + D6 E6 ; # small zh + D7 E2 ; # small v + D8 FC ; # small soft sign + D9 FB ; # small y + DA E7 ; # small z + DB F8 ; # small sh + DC FD ; # small e + DD F9 ; # small shch + DE F7 ; # small ch + DF FA ; # small hard sign + + E0 DE ; # capital YU + E1 C0 ; # capital A + E2 C1 ; # capital B + E3 D6 ; # capital TS + E4 C4 ; # capital D + E5 C5 ; # capital YE + E6 D4 ; # capital F + E7 C3 ; # capital G + E8 D5 ; # capital KH + E9 C8 ; # capital I + EA C9 ; # capital J + EB CA ; # capital K + EC CB ; # capital L + ED CC ; # capital M + EE CD ; # capital N + EF CE ; # capital O + + F0 CF ; # capital P + F1 DF ; # capital YA + F2 D0 ; # capital R + F3 D1 ; # capital S + F4 D2 ; # capital T + F5 D3 ; # capital U + F6 C6 ; # capital ZH + F7 C2 ; # capital V + F8 DC ; # capital soft sign + F9 DB ; # capital Y + FA C7 ; # capital Z + FB D8 ; # capital SH + FC DD ; # capital E + FD D9 ; # capital SHCH + FE D7 ; # capital CH + FF DA ; # capital hard sign +} diff --git a/conf/mime.types b/conf/mime.types new file mode 100644 index 000000000..f8df51cb2 --- /dev/null +++ b/conf/mime.types @@ -0,0 +1,24 @@ + +types { + text/html html htm shtml; + text/xml xml rss; + text/css css; + text/plain txt; + + image/gif gif; + image/png png; + image/jpeg jpeg jpg; + image/x-icon ico; + + application/pdf pdf; + application/x-shockwave-flash swf; + application/x-javascript js; + + audio/mpeg mp3; + audio/x-realaudio ra; + + video/mpeg mpeg mpg; + video/quicktime mov; + video/x-msvideo avi; + video/x-ms-wmv wmv; +} diff --git a/conf/nginx.conf b/conf/nginx.conf new file mode 100644 index 000000000..00025101a --- /dev/null +++ b/conf/nginx.conf @@ -0,0 +1,37 @@ + +user nobody; +worker_processes 3; + +#error_log logs/error.log; +#pid logs/nginx.pid; + + +events { + connections 1024; +} + + +http { + include conf/mime.types; + default_type application/octet-stream; + + sendfile on; + + #gzip on; + + server { + listen 80; + + charset on; + source_charset koi8-r; + + #access_log logs/access.log; + + location / { + root html; + index index.html index.htm; + } + + } + +} diff --git a/docs/dtd/change_log_conf.dtd b/docs/dtd/change_log_conf.dtd new file mode 100644 index 000000000..40a012335 --- /dev/null +++ b/docs/dtd/change_log_conf.dtd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/dtd/changes.dtd b/docs/dtd/changes.dtd new file mode 100644 index 000000000..5b229d5eb --- /dev/null +++ b/docs/dtd/changes.dtd @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/index.html b/docs/html/index.html new file mode 100644 index 000000000..1f7927539 --- /dev/null +++ b/docs/html/index.html @@ -0,0 +1,8 @@ + + +Welcome to nginx! + + +

Welcome to nginx!

+ + diff --git a/docs/text/LICENSE b/docs/text/LICENSE new file mode 100644 index 000000000..f057c0b8e --- /dev/null +++ b/docs/text/LICENSE @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2002-2004 Igor Sysoev + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ diff --git a/docs/text/README b/docs/text/README new file mode 100644 index 000000000..626f0a53e --- /dev/null +++ b/docs/text/README @@ -0,0 +1,3 @@ + +Documentation is available at http://sysoev.ru/nginx/ only. + diff --git a/docs/xml/change_log_conf.xml b/docs/xml/change_log_conf.xml new file mode 100644 index 000000000..9b1218449 --- /dev/null +++ b/docs/xml/change_log_conf.xml @@ -0,0 +1,45 @@ + + + + + +78 + + *) + + + + éÚÍÅÎÅÎÉÑ × + 66 + + éÓÐÒÁ×ÌÅÎÉÅ + äÏÂÁ×ÌÅÎÉÅ + éÚÍÅÎÅÎÉÅ + éÚÍÅÎÅÎÉÅ + + + + Changes with + 65 + + Bugfix + Feature + Change + Workaround + + Jan + Feb + Mar + Apr + May + Jun + Jul + Aug + Sep + Oct + Nov + Dec + + + + diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml new file mode 100644 index 000000000..a277595c7 --- /dev/null +++ b/docs/xml/nginx/changes.xml @@ -0,0 +1,979 @@ + + + + + + + + + + + +mod_accel ÎÅ ÏÐÒÅÄÅÌÑÌ É ÎÅ ÐÁÔÞÉÌ EAPI, ÅÓÌÉ ÓÏÂÉÒÁÌÓÑ ×ÍÅÓÔÅ +Ó mod_ssl-2.8.13-1.3.27+. + + +mod_accel did not detect and patch broken EAPI when built with +mod_ssl-2.8.13-1.3.27+. + + + + + +ÐÒÉ ÐÒÏËÓÉÒÏ×ÁÎÉÉ Ó ÐÏÍÏÝØÀ ÍÏÄÕÌÑ mod_rewrite mod_accel +ÐÏÄÄÅÒÖÉ×ÁÅÔ ÐÅÒÅÐÉÓÙ×ÁÎÉÅ ÚÁÇÏÌÏ×ËÏ× "Location" É "Refresh" Ó ÐÏÍÏÝØÀ +ÜÔÏÇÏ ÖÅ ÍÏÄÕÌÑ É +ÄÌÑ ÜÔÏÇÏ +ÕËÁÚÙ×ÁÅÔ ÉÍÑ ÂÜËÅÎÄÁ × ÐÅÒÅÍÅÎÎÏÊ +ÓÒÅÄÙ "ACCEL_REWRITE". + + +when request is proxied with the help of mod_rewrite module mod_accel +set the backend name in the "ACCEL_RWRITE" enviroment variable and +supports the rewriting of "Location" and "Refresh" headers with the help of +mod_rewrite module. + + + + + +mod_accel ÐÅÒÅÐÉÓÙ×ÁÅÔ ÓÏÄÅÒÖÉÍÏÅ ÚÁÇÏÌÏ×ËÁ "Destination", +ÅÓÌÉ ÉÍÑ ÈÏÓÔÁ × ÜÔÏÍ ÚÁÇÏÌÏ×ËÅ ÓÏ×ÐÁÄÁÅÔ Ó ÓÏÄÅÒÖÉÍÙÍ +ÚÁÇÏÌÏ×ËÁ "Host", ÉÌÉ ÖÅ ÅÓÌÉ URI ÎÅ ÁÂÓÏÌÀÔÎÙÊ. + + +mod_accel now rewrites "Destination" header if the host name in this header +is as in "Host" header or if the destination URI is not absolute. + + + + + +mod_accel ÚÁÃÉËÌÉ×ÁÌÓÑ × ÓÌÕÞÁÅ, ÅÓÌÉ ËÌÉÅÎÔ ÚÁÐÒÁÛÉ×ÁÌ byte range, +Á ÂÜËÅÎÄ ÎÅ ÐÅÒÅÄÁ×ÁÌ ËÜÛÉÒÕÅÍÙÊ ÏÔ×ÅÔ ÐÏÌÎÏÓÔØÀ. + + +mod_accel went into an endless loop if the client requested the byte range +and the backend did not send the full cachable response. + + + + + + + + + + +ÓÄÅÌÁÎÁ ÐÒÏ×ÅÒËÁ É ÐÁÔÞ ÄÌÑ EAPI ÉÚ mod_ssl-2.8.13-1.3.27+. + + +broken EAPI from mod_ssl-2.8.13-1.3.27+ now is checked and patched. + + + + + +ÄÉÒÅËÔÉ×Á AccelSetXURI ÎÅ ÒÁÂÏÔÁÌÁ. + + +AccelSetXURI directive did not work. + + + + + + + + + + +ÂÜËÅÎÄÙ, ÉÓÐÏÌØÚÕÀÝÉÅ named-based ×ÉÒÕÔÁÌØÎÙÅ ÈÏÓÔÙ, ÎÅ ÂÙÌÉ ÄÏÓÔÕÐÎÙ +ÞÅÒÅÚ _the_same_host_. + + +backends that use named-based virtual hosts can not be accessed via +_the_same_host_. + + + + + + + + + + +AccelReverse ÒÁÂÏÔÁÅÔ É ÄÌÑ ÚÁÐÒÏÓÏ×, ÐÒÏËÓÉÒÏ×ÁÎÎÙÈ ÞÅÒÅÚ AccelPass. + + +AccelReverse works for AccelPass'ed requests too. + + + + + +action remove × accel-cachemgr ÎÅ ÒÁÂÏÔÁÌ Ó URL, × ËÏÔÏÒÙÈ ÓÉÍ×ÏÌÙ +ËÏÄÉÒÏ×ÁÌÉÓØ × ×ÉÄÅ %XX. + + +accel-cachemgr's remove action did not work with URLs with characters +endcoded as %XX. + + + + + + + + + + +ÆÌÁÇÉ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÍÏÄÕÌÅÊ R, Q É F ÚÁÌÉÐÁÌÉ × ËÜÛÅ ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ +ÆÁÊÌ ÎÅ ÕÄÁÌÑÌÓÑ ÉÚ ËÜÛÁ. + + +additional modules R, Q and F flags were sticky until cache file was +not removed from cache. + + + + + +ÎÅ ÒÁÂÏÔÁÌ action remove × accel-cachemgr. + + +accel-cachemgr's remove action did not work. + + + + + +ÄÁ×ÎÏ ÎÅÍÅÎÑÅÍÙÅ ÄÏËÕÍÅÎÔÙ ÎÅ ËÜÛÉÒÏ×ÁÌÉÓØ, ÅÓÌÉ ÄÌÑ ËÜÛÉÒÏ×ÁÎÉÑ +ÉÓÐÏÌØÚÏ×ÁÌÓÑ AccelLastModifiedFactor. + + +long invariable documents were not cached if AccelLastModifiedFactor +was used to choose cache time. + + + + + + + + + + +ÅÓÌÉ × URL, ÓÏÚÄÁÎÎÙÍ ÍÏÄÕÌÅÍ mod_rewrite, ÎÁÈÏÄÉÌÉÓØ +ÓÉÍ×ÏÌÙ × ×ÉÄÅ %XX, +ÔÏ ÏÎÉ ÐÅÒÅÄÁ×ÁÌÉÓØ ÂÜËÅÎÄÕ × ÒÁÓËÒÙÔÏÍ ×ÉÄÅ. + + +if mod_rewrite created URL contained characters encoded as %XX then +they was passed to backend unescaped. + + + + + +ËÌÀÞ -DMOD_REWRITE_DISABLE_TO_PROXY_SUBREQ. + + +-DMOD_REWRITE_DISABLE_TO_PROXY_SUBREQ switch was added. + + + + + +ÐÅÒÅÍÅÎÎÁÑ ÓÒÅÄÙ ACCEL_NOCACHE. + + +ACCEL_NOCACHE enviroment variable was added. + + + + + + + + + + +× ÄÉÒÅËÔÉ×Å FreezeStart. + + +in FreezeStart directive. + + + + + +ÄÉÒÅËÔÉ×Á AccelCacheSetCookie. + + +AccelCacheSetCookie directive. + + + + + +AccelCacheRoot ÎÅ ÐÏÎÉÍÁÌ ÐÁÒÁÍÅÔÒÙ × ËÁ×ÙÞËÁÈ. + + +AccelCacheRoot did not understand quoted parameters. + + + + + +ÍÏÄÕÌØ mod_freeze ÎÅ ÚÁÍÏÒÁÖÉ×ÁÌ ÓÈÅÍÙ, ÅÓÌÉ ÏÎÉ ÕËÁÚÁÎÙ × +ÏÄÉÎÁÒÎÙÈ ËÁ×ÙÞËÁÈ. + + +mod_freeze did not freeze schemas if they was quoted in apostrophes. + + + + + +ÍÏÄÕÌØ mod_freeze ÎÅ ÚÁÍÏÒÁÖÉ×ÁÌ ÔÜÇ style, ÐÁÒÁÍÅÔÒ style É +ÓÈÅÍÕ behavior:. + + +mod_freeze did not freeze style tag, style parameter and behavior: schema. + + + + + +ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ×ÉÄÁ <<script ÎÅ ÚÁÍÏÒÁÖÉ×ÁÌÁÓØ ÍÏÄÕÌÅÍ mod_freeze. + + +<<script sequence was not frozen by mod_freeze. + + + + + +ÏÐÔÉÍÉÚÉÒÏ×ÁÎ ÁÌÇÏÒÉÔÍ ÐÏÉÓËÁ × ÍÏÄÕÌÅ mod_freeze. + + +mod_freeze's search algorithm was optimized. + + + + + + + + + + +ÆÌÁÇÉ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÍÏÄÕÌÅÊ R, Q É F ÎÅ ×ÙÓÔÁ×ÌÑÌÉÓØ, +ÅÓÌÉ ÚÁÐÒÏÓ ÂÙÌ ÎÅËÜÛÉÒÕÅÍÙÍ. + + +additional modules R, Q and F flags were not set +if request was not cachable. + + + + + +ÄÉÒÅËÔÉ×Á AccelPassXAccel. + + +AccelPassXAccel directive. + + + + + +ÍÏÄÕÌØ mod_freeze. + + +mod_freeze module. + + + + + + + + + + +ÄÉÒÅËÔÉ×Á "AccelPassServer off" × Apache-1.3.26 ×ÏÏÂÝÅ ÎÅ ×ÙÄÁ×ÁÌÁ +ÚÁÇÏÌÏ×ÏË "Server". + + +"AccelPassServer off" did not send any "Server" header in Apache-1.3.26. + + + + + +ÄÏËÕÍÅÎÔÁÃÉÑ ÐÏ mod_accel ËÏÐÉÒÕÅÔÓÑ × /manual/mod/mod_accel.html. + + +mod_accel Russian documentation is copied in /manual/mod/mod_accel.html. + + + + + + + + + + +ÐÁÒÁÍÅÔÒ MP × ÄÉÒÅËÔÉ×Å AccelPass ÒÁÂÏÔÁÌ ÎÅËÏÒÒÅËÔÎÏ, ÅÓÌÉ ÔÁËÖÅ +ÂÙÌ ÚÁÄÁÌ ÐÁÒÁÍÅÔÒ PH ÉÌÉ ÉÓÐÏÌØÚÏ×ÁÌÏÓØ ÓÐÅÃÉÁÌØÎÏÅ ÉÍÑ _the_same_host_. + + +AccelPass MP parameter was worked incorrectly if used with PH parameter +or with special _the_same_host_ host name. + + + + + + + + + + +×Ï ×ÒÅÍÑ ÐÌÁ×ÎÏÇÏ (graceful) ÒÅÓÔÁÒÔÁ ÍÏÇ ÐÒÏÉÚÏÊÔÉ segmentation fault +× ÏÓÎÏ×ÎÏÍ ÐÒÏÃÅÓÓÅ, ÅÓÌÉ ×ÓÅ ÒÁÂÏÞÉÅ ÓÌÏÔÙ ÂÙÌÉ ÚÁÎÑÔÙ. + + +segmentation fault can occur in main process while graceful restart +when all child slots were busy. + + + + + + + + + + +ÄÉÒÅËÔÉ×Ù AccelRetry5XX É AccelSetXURI. + + +AccelRetry5XX and AccelSetXURI directives were added. + + + + + +ÚÁÍÅÔËÉ accel_request_body É accel_rewrite_response. + + +accel_request_body and accel_rewrite_response notes were added. + + + + + +mod_accel ÎÅ ÓÏÂÉÒÁÌÓÑ ËÏÍÐÉÌÑÔÏÒÏÍ aCC ÎÁ ÐÌÁÔÆÏÒÍÅ HP-UX. +óÐÁÓÉÂÏ Marko Asplund, aspakronodoc.fi. + + +mod_accel is not built by aCC on HP-UX.
+Thanks to Marko Asplund, aspakronodoc.fi. +
+
+ + + +ËÏÓÍÅÔÉÞÅÓËÉÅ ÐÒÁ×ËÉ. + + +code clean up. + + + +
+ + + + + + +ÅÓÌÉ × URL ÐÅÒÅÄ ÁÒÇÕÍÅÎÔÁÍÉ ÎÁÈÏÄÉÌÉÓØ ÓÉÍ×ÏÌÙ × ×ÉÄÅ %XX, +ÔÏ ÏÎÉ ÐÅÒÅÄÁ×ÁÌÉÓØ ÂÜËÅÎÄÕ × ÒÁÓËÒÙÔÏÍ ×ÉÄÅ. + + +if URL before arguments contained characters encoded as %XX then +they was passed to backend unescaped. + + + + + + + + + + +× ÄÉÒÅËÔÉ×Å AccelPass ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÐÅÃÉÁÌØÎÏÅ +ÉÍÑ ÈÏÓÔÁ _the_same_host_. + + +special hostname _the_same_host_ can be used in AccelPass directive. + + + + + +ÎÅ ÒÁÂÏÔÁÌÏ ÏÇÒÁÎÉÞÅÎÉÅ ËÏÌÉÞÅÓÔ×Á ÓÏÅÄÉÎÅÎÉÊ É ÖÄÕÝÉÈ ÐÒÏÃÅÓÓÏ× +ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÆÌÁÇÁ PH × ÄÉÒÅËÔÉ×Å AccelPass. + + +limition of connections and waiting processes does not work +if PH flag in AccelPass directive was used. + + + + + +ÄÉÒÅËÔÉ×Á AccelPassServer. + + +AccelPassServer directive was added. + + + + + + + + + + +ÅÓÌÉ ÍÏÄÕÌÉ mod_quoted ÉÌÉ mod_randban ÂÙÌÉ ÓÏÂÒÁÎÙ ÓÔÁÔÉÞÅÓËÉ +ÉÌÉ ÐÏÄÇÒÕÖÁÌÉÓØ Ó ÐÏÍÏÝØÀ LoadModule, ÎÏ ÎÅ ÂÙÌÉ ÄÏÂÁ×ÌÅÎÙ +ÄÉÒÅËÔÉ×ÏÊ AddModule ÐÏÓÌÅ ÄÉÒÅËÔÉ×Ù ClearModuleList, ÔÏ +ÄÉÒÅËÔÉ×Ù ÜÔÉÈ ÍÏÄÕÌÅÊ ÎÅ ×ÏÓÐÒÉÎÉÍÁÌÉÓØ. +åÓÌÉ ÖÅ ÄÉÒÅËÔÉ×Ù ÜÔÉÈ ÍÏÄÕÌÅÊ ÎÅ ÉÓÐÏÌØÚÏ×ÁÌÉÓØ × ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÆÁÊÌÁÈ, +ÔÏ ÐÒÉ ÌÀÂÙÈ ÚÁÐÒÏÓÁÈ, ÏÂÒÁÂÁÔÙ×ÁÅÍÙÈ ÍÏÄÕÌÅÍ mod_accel, +ÐÒÏÉÓÈÏÄÉÌ segmentation fault. + + +if mod_quoted or mod_randban modules were statically build +or were loaded with LoadModule directive and were not added +with AddModule directive after ClearModuleList directive then +their directives were unrecognized. +If their directives were not used in configration files +then any request handled by mod_accel caused segmentation fault. + + + + + + + + + + +ÎÅËÏÒÒÅËÔÎÏ ÏÂÒÁÂÁÔÙ×ÁÌÉÓØ ÏÔ×ÅÔÙ ÂÜËÅÎÄÁ Ó ÂÏÌØÛÉÍÉ ÚÁÇÏÌÏ×ËÁÍÉ. + + +backend response with big header was incorrectly handled. + + + + + +ÉÇÎÏÒÉÒÕÀÔÓÑ ÓÔÒÏËÉ ÔÉÐÁ "HTTP/1.0 200 OK" × ÓÅÒÅÄÉÎÅ ÚÁÇÏÌÏ×ËÁ ÏÔ×ÅÔÁ +ÂÜËÅÎÄÁ. äÏÂÁ×ÌÅÎÁ ÚÁÐÉÓØ × ErrorLog ÎÅËÏÒÒÅËÔÎÙÈ ÚÁÇÏÌÏ×ËÏ× × ÏÔ×ÅÔÅ +ÂÜËÅÎÄÁ. + + +lines like "HTTP/1.0 200 OK" are ignored in middle of backend response header. +Incorrect backend header lines are logged in ErrorLog. + + + + + +ÄÉÒÅËÔÉ×Á AccelInvalidate, accel-cachemgr É ÚÁÇÏÌÏ×ËÉ ÔÉÐÁ +"Pragma: no-cache" ÎÅ ÏÂÎÏ×ÌÑÌÉ ËÜÛ, +ÅÓÌÉ ÚÁÄÁÎÁ ÄÉÒÅËÔÉ×Á "AccelUnlinkNoCached off". + + +AccelInvalidate directive, accel-cachemgr and headers like +"Pragma: no-cache" did not refresh cache +if AccelUnlinkNoCached directive was off. + + + + + +ÐÏÒÑÄÏË ÎÁÓÌÅÄÏ×ÁÎÉÑ AccelPass ÉÚÍÅΣÎ, ÓÎÁÞÁÌÁ ÐÒÏ×ÅÒÑÀÔÓÑ +ÄÉÒÅËÔÉ×Ù ÉÚ ×ÉÒÔÕÁÌØÎÏÇÏ ÓÅÒ×ÅÒÁ, Á ÚÁÔÅÍ ÉÚ ÏÓÎÏ×ÎÏÇÏ. + + +merge order of AccelPass directive is changed. Virtual server direcitves +are checked first. + + + + + + + + + + +ÎÅ ËÏÒÒÅËÔÉÒÏ×ÁÌÓÑ ÐÏÒÔ × ÚÁÇÏÌÏ×ËÁÈ "Location" É "Refresh" +ÅÓÌÉ ÉÓÐÏÌØÚÏ×ÁÌÓÑ ÆÌÁÇ PH × ÄÉÒÅËÔÉ×Å AccelPass É ÎÏÍÅÒÁ ÐÏÒÔÏ× +ÆÒÏÎÔÅÎÄÁ É ÂÜËÅÎÄÁ ÏÔÌÉÞÁÌÉÓØ. + + +port was not corrected in "Location" and "Refresh" headers +if PH flag in AccelPass directive was used and frontend and backend +port numbers were not the same. + + + + + + + + + + +ÆÌÁÇ PH × ÄÉÒÅËÔÉ×Å AccelPass. + + +PH flag was added in AccelPass directive. + + + + + + + + + + +ÕÐÒÁÚÄÎÅÎÁ ÄÉÒÅËÔÉ×Á AccelContentTail. + + +AccelContentTail directive was removed. + + + + + +ÅÓÌÉ ÐÅÒÅÚÁÐÉÓÙ×ÁÅÍÁÑ ÓÔÒÏËÁ ÐÏÐÁÄÁÌÁ ÎÁ ÇÒÁÎÉÃÕ ÂÕÆÅÒÁ, mod_randban +ÍÏÇ ÎÅËÏÒÒÅËÔÎÏ ÐÏÍÅÎÑÔØ ÓÌÕÞÁÊÎÏÅ ÞÉÓÌÏ. + + +mod_randban can incorrectly change random value if string to rewrite +was on buffer edge. + + + + + +óÏ×ÍÅÓÔÉÍÏÓÔØ Ó Apache 1.3.23. + + +Apache 1.3.23 compatibility. + + + + + +ÅÓÌÉ × ËÏÎÆÉÇÕÒÁÃÉÉ AccelPass ÏÐÉÓÁÎ Location × ×ÉÄÅ /proxied/, +ÔÏ ÐÒÉ ÚÁÐÒÏÓÅ /proxied ×ÏÚ×ÒÁÝÁÅÔÓÑ ÒÅÄÉÒÅËÔ ÎÁ URL Ó ÄÏÂÁ×ÌÅÎÎÙÍ +ÓÌÜÛÏÍ - /proxied/. + + +if Location is specified in AccelPass as /proxied/ then +on request /proxied redirect is returned to URL with slash added - /proxied/. + + + + + +ÎÅ ×ÏÚ×ÒÁÝÁÌÁÓØ ÏÛÉÂËÁ, ÅÓÌÉ ÎÅ ÕÄÁ×ÁÌÏÓØ ÓÏÚÄÁÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ +ÄÌÑ ÈÒÁÎÅÎÉÑ ÔÅÌÁ ÚÁÐÒÏÓÁ POST. + + +error was not returned if POST request body temporary file creation was failed. + + + + + + + + + + +ÄÉÒÅËÔÉ×Á AccelReverse. + + +AccelReverse directive was added. + + + + + + + + + + +ÎÁ Solaris 7 É FreeBSD 2.x ÂÏÌØÛÉÅ ÏÔ×ÅÔÙ ÐÅÒÅÄÁ×ÁÌÉÓØ ÎÅ ÄÏ ËÏÎÃÁ. + + +big repsonses was truncated on Solaris 7 and FreeBSD 2.x. + + + + + + + + + + +ÓËÏÒÒÅËÔÉÒÏ×ÁÎÙ ÎÅËÏÔÏÒÙÅ ÓÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ. + + +some error messages was corrected. + + + + + +ÅÓÌÉ ËÌÉÅÎÔ × ÚÁÐÒÏÓÅ POST ÏÂÒÙ×ÁÌ ÓÏÅÄÉÎÅÎÉÅ, +ÔÏ ÂÜËÅÎÄÕ ÐÅÒÅÄÁ×ÁÌÏÓØ ÎÅÐÏÌÎÏÅ ÔÅÌÏ ÚÁÐÒÏÓÁ. +ôÅÐÅÒØ mod_accel × ÔÁËÏÊ ÓÉÔÕÁÃÉÉ ÎÅ ÓÏÅÄÉÎÑÅÔÓÑ Ó ÂÜËÅÎÄÏÍ. + + +if client aborted connection while POST +then backend received incompleted request body. +Now mod_accel doesn't connect to backend in this situation. + + + + + +mod_accel ÎÅ ÓÏÂÉÒÁÌÓÑ ÂÅÚ ÂÉÂÌÉÏÔÅËÉ mm. + + +mod_accel did not build without mm library. + + + + + + + + + + +× ÓÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ ÄÏÂÁ×ÌÅÎ URL, ËÏÔÏÒÙÊ ÐÅÒÅÄÁ£ÔÓÑ ÂÜËÅÎÄÕ. + + +backend URL was added in error messages. + + + + + +ÔÒÅÔÉÊ ÐÁÒÁÍÅÔÒ × ÄÉÒÅËÔÉ×Å AccelBusyLock. + + +third parameter was added in AccelBusyLock directory. + + + + + +ÐÏÒÑÄÏË ÚÁÇÒÕÚËÉ ÍÏÄÕÌÅÊ mod_accel, mod_randban, mod_quoted +É mod_ssl ÎÅ ×ÁÖÅÎ. + + +load order of mod_accel, mod_randban, mod_quoted and mod_ssl +has no meaning now. + + + + + +ÄÏÂÁ×ÌÅÎ ÐÁÒÁÍÅÔÒ --with-patch × configure.
+õÐÒÁÚÄÎÅÎÙ ÐÁÒÁÍÅÔÒÙ --without-mod_charset É --without-mod_ssl. +
+ +--with-patch directive was added in configure.
+--without-mod_charset and --without-mod_ssl directives is removed. +
+
+ + + +ÕÌÕÞÛÅÎÉÅ ÐÏÒÔÁÂÉÌØÎÏÓÔÉ. + + +portability enhancement. + + + +
+ + + + + + +×Ï ÆÌÁÇÅ MP ÄÉÒÅËÔÉ×Ù AccelPass ÍÏÖÎÏ ÕËÁÚÙ×ÁÔØ ÔÜÇ. + + +MP flag of AccelPass directive can have tag. + + + + + +ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÐÒÏËÓÉÒÏ×ÁÎÉÑ (ÆÌÁÇ P) × ÄÉÒÅËÔÉ×Å +RewriteRule ÍÏÄÕÌÑ mod_rewrite ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÌÁÇ MP. + + +MP flag can be used in mod_rewrite module RewriteRule +directive when proxing is specified (P flag). + + + + + +ÐÒÉ ÕËÁÚÁÎÉÉ ×ÒÅÍÅÎÉ ËÜÛÉÒÏ×ÁÎÉÑ Ó ÐÏÍÏÝØÀ ÄÉÒÅËÔÉ× +AccelDefaultExpire ÉÌÉ AccelLastModifiedFactor ÏÔ×ÅÔ ÎÅ ÓÏÈÒÁÎÑÌÓÑ +× ËÜÛ, ÅÓÌÉ ÒÁÚÎÉÃÁ ×Ï ×ÒÅÍÅÎÉ ÍÅÖÄÕ ÆÒÏÎÔÅÎÄÏÍ É ÂÜËÅÎÄÏÍ ÂÙÌÁ +ÂÏÌØÛÅ ×ÒÅÍÑ ËÜÛÉÒÏ×ÁÎÉÑ. + + +if time to cache is specified in AccelDefaultExpire or +AccelLastModifiedFactor directive and time difference between +frontend and backend is more then specified time then answer +was not saved in cache. + + + + + + + + + + +ÄÉÒÅËÔÉ×Á AccelIgnoreAuth. + + +AccelIgnoreAuth directive was added. + + + + + +ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÐÒÏËÓÉÒÏ×ÁÎÉÑ (ÆÌÁÇ P) × ÄÉÒÅËÔÉ×Å +RewriteRule ÍÏÄÕÌÑ mod_rewrite ÍÏÄÕÌØ mod_proxy ÄÕÂÌÉÒÏ×ÁÌ +ÓÔÒÏËÕ ÁÒÇÕÍÅÎÔÏ×. + + +mod_proxy module duplicated argument string when proxing +is specified in mod_rewrite module RewriteRule directive (P flag). + + + + + + + + + + +ÅÓÌÉ ÂÜËÅÎÄÏ× ÎÅÓËÏÌØËÏ É Ó ÏÄÎÉÍ ÉÚ ÎÉÈ ÓÏÅÄÉÎÅÎÉÅ +ÎÅ ÂÙÌÏ ÕÓÔÁÎÏ×ÌÅÎÏ, ÔÏ ÉÎÆÏÒÍÁÃÉÑ Ï ÜÔÏÊ ÐÏÐÙÔËÅ × ÚÁÍÅÔËÉ +%{accel*}x ÎÅ ÄÏÂÁ×ÌÑÌÁÓØ. + + +if there are several backends and connection with one of them +was not established then %{accel*}x notes did not contain state of it. + + + + + +ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÏÔ ÂÜËÅÎÄÁ ÂÏÌØÛÏÇÏ ÚÁÇÏÌÏ×ËÁ ÐÒÏÉÓÈÏÄÉÌ +segmentation fault. + + +backend big header caused segmentation fault. + + + + + +× accel-cachemgr ÄÏÂÁ×ÌÅÎÙ Ä×Á ÓÏÓÔÏÑÎÉÑ - invalid +É no_accelerated. + + +two status codes - invalid and no_accelerated was added +in accel-cachemgr. + + + + + +ÄÉÒÅËÔÉ×Á RewriteRule ÍÏÄÕÌÑ mod_rewrite Ó ÆÌÁÇÏÍ [P] +ÒÁÂÏÔÁÌÁ ÔÏÌØËÏ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ × SSI. + + +mod_rewrite module RewriteRule directive with flag [P] +worked in SSI enviroment only. + + + + + + + + + + +éÚÍÅÎÅÎÉÑ × ÄÉÒÅËÔÉ×Å AccelCacheCookie: +äÏÂÁ×ÌÅÎÙ ÐÁÒÁÍÅÔÒ "all", ÚÁÐÒÅÝÁÀÝÉÅ ÐÁÒÁÍÅÔÒÙ É ÒÅÇÕÌÑÒÎÙÅ ×ÙÒÁÖÅÎÉÑ. +÷ ÏÄÎÏÊ ÄÉÒÅËÔÉ×Å ÍÏÖÅÔ ÂÙÔØ ÕËÁÚÁÎÏ ÎÅÓËÏÌØËÏ ÐÁÒÁÍÅÔÒÏ×. +äÉÒÅËÔÉ×Ù ÉÚ ×ÌÏÖÅÎÎÙÈ ÂÌÏËÏ× ÎÅ ÏÂßÅÄÉÎÑÀÔÓÑ. +éÍÅÎÁ cookie ÓÏÒÔÉÒÕÀÔÓÑ × ÁÌÆÁ×ÉÔÎÏÍ ÐÏÒÑÄËÅ. + + +Changes in AccelCacheCookie directive: +"all" parameter, supressing parameters and regular expressions was added. +There can be several parameters in one directive. +Directives is not merged. +Cookie names is sorted in alphabetical order. + + + + + +éÚÍÅÎÅÎÉÑ × ÄÉÒÅËÔÉ×Å AccelNoPass: +òÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÍÏÖÅÔ ÂÙÔØ ÎÅÞÕÓÔ×ÉÔÅÌØÎÏ Ë ÒÅÇÉÓÔÒÕ. +íÅÖÄÕ ÓÉÍ×ÏÌÏÍ "~" É ÒÅÇÕÌÑÒÎÙÍ ×ÙÒÁÖÅÎÉÅÍ ÎÅ ÄÏÌÖÎÏ ÂÙÔØ ÐÒÏÂÅÌÁ. +÷ ÏÄÎÏÊ ÄÉÒÅËÔÉ×Å ÍÏÖÅÔ ÂÙÔØ ÕËÁÚÁÎÏ ÎÅÓËÏÌØËÏ ÐÁÒÁÍÅÔÒÏ×. + + +Changes in AccelNoPass directive: +Regular expression can be case-insensitive. +There should not be space between "~" symbol and regular expression. +There can be several parameters in one directive. + + + + + + + + + + +ÄÉÒÅËÔÉ×Á AccelCacheCookie. + + +AccelCacheCookie directive was added. + + + + + +ÚÁÍÅÔËÁ accel_nocache. + + +accel_nocache note was added. + + + + + +ÏÂÒÁÂÏÔÞÉË accel-cachemgr. + + +accel-cachemgr handler was added. + + + + + +ÐÒÉ ÚÁÐÒÏÓÅ ÎÅÓËÏÌØËÉÈ ÎÅ×ÏÚÒÁÓÔÁÀÝÉÈ byteranges ÍÏÇ +×ÙÄÁ×ÁÔØÓÑ ÎÅ×ÅÒÎÙÊ ÏÔ×ÅÔ. + + +answer may be wrong if request contains several non-growing +byteranges. + + + + + +ÚÁÍÅÔËÁ %{accel_r}x ÎÅ ÚÁÐÉÓÙ×ÁÌÁÓØ × ÌÏÇ. + + +%{accel_r}x note was not logged. + + + + + +ÅÓÌÉ ÏÔ×ÅÔ ÎÅËÜÛÉÒÕÅÍÙÊ, ÔÏ ÐÒÉ ÐÒÅÖÄÅ×ÒÅÍÅÎÎÏÍ ÏÂÒÙ×Å +ÓÏÅÄÉÎÅÎÉÑ Ó ËÌÉÅÎÔÏÍ ÓÏÅÄÉÎÅÎÉÅ Ó ÂÜËÅÎÄÏÍ ÎÅ ÚÁËÒÙ×ÁÌÏÓØ ÓÒÁÚÕ. + + +if response is not cachable and client prematurely closes +connection then connection to backend was not closed at once. + + + + + + + + + + +ÏÛÉÂËÁ × accel_read_and_check_writable() ×ÙÚÙ×ÁÌÁ ÎÁÇÒÕÚËÕ ÎÁ ÐÒÏÃÅÓÓÏÒ. + + +bug in accel_read_and_check_writable() caused high CPU usage. + + + + + + + + + + +ðÅÒ×ÁÑ ×ÅÒÓÉÑ.
+ôÅÓÔÉÒÏ×ÁÌÁÓØ ÎÁ Apache 1.3.14, 1.3.17, 1.3.19, 1.3.20 ÎÁ +FreeBSD 3.4, 4.2. +
+ +First release.
+Tested with Apache 1.3.14, 1.3.17, 1.3.19, 1.3.20 on FreeBSD 3.4, 4.2. +
+
+ +
+ +
diff --git a/docs/xsls/changes.xsls b/docs/xsls/changes.xsls new file mode 100644 index 000000000..000461692 --- /dev/null +++ b/docs/xsls/changes.xsls @@ -0,0 +1,118 @@ +X:stylesheet { + +X:output method="text" encoding="koi8-r"; + +X:param lang="'en'"; +X:param configuration="'../xml/change_log_conf.xml'"; + +X:var conf = "document($configuration)/configuration"; +X:var start = "$conf/start"; +X:var indent = "$conf/indent"; +X:var max = "$conf/length"; +X:var br = {<br>} + + +X:template = "/" { !! "change_log"; } +X:template = "change_log" { !! "changes"; } + + +X:template = "changes" { + X:text { } + + !{substring(concat($conf/changes[@lang=$lang]/title, + //change_log/@title, + ' ', @ver, + ' '), + 1, $conf/changes[@lang=$lang]/length)} + + X:if "$lang='ru'" { !{@date} } + + X:if "$lang='en'" { + !{substring(@date, 1, 2)} + !{$conf/changes[@lang=$lang]/month[number(substring(current()/@date, + 4, 2))]} + !{substring(@date, 7, 4)} + } + + X:text { } + + !! "change"; + + X:text { } +} + + +X:template = "change" { + X:var prefix = "$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]" + + X:var postfix = { X:if "$prefix" { X:text {: } } } + + !! "para[@lang=$lang]" (prefix = "concat($start, $prefix, $postfix)"); +} + + +X:template para(prefix) = "para" { + X:var text = { !!; } + + X:text { } + + !wrap(text = "normalize-space($text)", + prefix = { X:if "position() = 1" { !{$prefix} } else { !{$indent} } }) +} + + +X:template wrap(text, prefix) { + X:if "$text" { + X:var offset = { + X:if "starts-with($text, concat($br, ' '))" { + !{string-length($br) + 2} + } else { + 1 + } + } + + X:var length = { + !length(text = "substring($text, $offset)", + prefix = "string-length($prefix)", + length = "$max") + } + + !{$prefix} + + !{translate(substring($text, $offset, $length), ' ', ' ')} + + X:text { } + + !wrap(text = "substring($text, $length + $offset)", prefix = "$indent") + } +} + + +X:template length(text, prefix, length) { + X:var break = "substring-before(substring($text, 1, $length - $prefix), + $br)" + + X:choose { + X:when "$break" { !{string-length($break)} } + + X:when "$length = 0" { !{$max} } + + X:when "string-length($text) + $prefix <= $length + or substring($text, $length - $prefix, 1) = ' '" + { + !{$length - $prefix} + } + + X:otherwise { + !length(text = "$text", prefix = "$prefix", length = "$length - 1") + } + } +} + + +X:template = "at" {@} +X:template = "br" { !{$br} } +X:template = "nobr" { !{translate(., ' ', ' ')} } + + +} diff --git a/docs/xsls/dump.xsls b/docs/xsls/dump.xsls new file mode 100644 index 000000000..6b39966a0 --- /dev/null +++ b/docs/xsls/dump.xsls @@ -0,0 +1,29 @@ +X:stylesheet { + +X:output method="xml" +X:param indent-increment="' '"; + +X:template noname(indent="' '") = "*" { + !{$indent} + + X:if "name()='xsl:template'" { + !{$indent} + } + + X:copy { + X:copy-of "@*" + !!( indent = "concat($indent, $indent-increment)" ); + X:if "./* " { !{$indent} } + } +} + + +X:template = "comment()|processing-instruction()" { + X:copy; +} + + + +} diff --git a/docs/xslt/changes.xslt b/docs/xslt/changes.xslt new file mode 100644 index 000000000..8b1cd0a8b --- /dev/null +++ b/docs/xslt/changes.xslt @@ -0,0 +1,158 @@ + + + + + + + + + + + + + <br> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ + + + + + + + + + \ No newline at end of file diff --git a/src/os/unix/ngx_linux_init.c b/src/os/unix/ngx_linux_init.c index db72c6e22..4946e153f 100644 --- a/src/os/unix/ngx_linux_init.c +++ b/src/os/unix/ngx_linux_init.c @@ -55,7 +55,7 @@ ngx_int_t ngx_os_init(ngx_log_t *log) name[0] = CTL_KERN; name[1] = KERN_RTSIGMAX; - len = sizeof(rtsig_max); + len = sizeof(ngx_linux_rtsig_max); if (sysctl(name, sizeof(name), &ngx_linux_rtsig_max, &len, NULL, 0) == -1) { ngx_log_error(NGX_LOG_INFO, log, ngx_errno, "sysctl(KERN_RTSIGMAX) failed"); -- 2.47.3