Nginx-0.8.25

Changes with nginx 0.8.25 16 Nov
2009

*) Change: now no message is written in an error log if a variable 

is
not found by $r->variable() method.

*) Feature: the ngx_http_degradation_module.

*) Feature: regular expression named captures.

*) Feature: now URI part is not required a "proxy_pass" directive if
   variables are used.

*) Feature: now the "msie_padding" directive works for Chrome too.

*) Bugfix: a segmentation fault occurred in a worker process on low
   memory condition; the bug had appeared in 0.8.18.

*) Bugfix: nginx sent gzipped responses to clients those do not 

support
gzip, if “gzip_static on” and “gzip_vary off”; the bug had
appeared
in 0.8.16.

-------- Original-Nachricht --------

Datum: Mon, 16 Nov 2009 16:54:26 +0300
Von: Igor S. [email protected]
An: [email protected]
Betreff: nginx-0.8.25

*) Feature: now URI part is not required a "proxy_pass" directive if 
   in 0.8.16.

src/os/unix/ngx_alloc.c:65:69: error: macro “ngx_log_debug2” passed 7
arguments, but takes just 6
src/os/unix/ngx_alloc.c: In function ‘ngx_memalign’:
src/os/unix/ngx_alloc.c:64: error: ‘ngx_log_debug2’ undeclared (first
use in this function)
src/os/unix/ngx_alloc.c:64: error: (Each undeclared identifier is
reported only once
src/os/unix/ngx_alloc.c:64: error: for each function it appears in.)
make[1]: *** [objs/src/os/unix/ngx_alloc.o] Error 1
make[1]: *** Waiting for unfinished jobs…

On Mon, Nov 16, 2009 at 04:54:54PM +0100, Steve wrote:

src/os/unix/ngx_alloc.c:65:69: error: macro “ngx_log_debug2” passed 7 arguments, but takes just 6
src/os/unix/ngx_alloc.c: In function ‘ngx_memalign’:
src/os/unix/ngx_alloc.c:64: error: ‘ngx_log_debug2’ undeclared (first use in this function)
src/os/unix/ngx_alloc.c:64: error: (Each undeclared identifier is reported only once
src/os/unix/ngx_alloc.c:64: error: for each function it appears in.)
make[1]: *** [objs/src/os/unix/ngx_alloc.o] Error 1
make[1]: *** Waiting for unfinished jobs…

The patch.

Igor S. wrote:

src/os/unix/ngx_alloc.c:65:69: error: macro “ngx_log_debug2” passed 7 arguments, but takes just 6
src/os/unix/ngx_alloc.c: In function ‘ngx_memalign’:
src/os/unix/ngx_alloc.c:64: error: ‘ngx_log_debug2’ undeclared (first use in this function)
src/os/unix/ngx_alloc.c:64: error: (Each undeclared identifier is reported only once
src/os/unix/ngx_alloc.c:64: error: for each function it appears in.)
make[1]: *** [objs/src/os/unix/ngx_alloc.o] Error 1
make[1]: *** Waiting for unfinished jobs…

The patch.

I can confirm with the patch this compiles properly in a couple of
different Linux environments. Thanks Igor.

-------- Original-Nachricht --------

Datum: Mon, 16 Nov 2009 19:03:27 +0300
Von: Igor S. [email protected]
An: [email protected]
Betreff: Re: nginx-0.8.25

Nov

make[1]: *** [objs/src/os/unix/ngx_alloc.o] Error 1
make[1]: *** Waiting for unfinished jobs…

The patch.

Okay. That did it. Thanks.


Igor S.

Стеве

On Mon, Nov 16, 2009 at 08:33:49AM -0800, Gabriel R. wrote:

Feature: the ngx_http_degradation_module. ?

How does this work?

This module allow to return 204 or 444 code for some locations on low
memory condition:

http {
degradation sbrk=500m;

server {

   location /some {
       degrade  204;
   }

Currently it can be used if sbrk(0) syscall reports real memory volume
allocated by a proccess. It does not work for Linux and FreeBSD 7.0+
where
malloc() may use mmap(). It can be used on FreeBSD before 7.0 and on
7.0+
if MALLOC_OPTIONS=Dm.

Hi Igor,

Could you kindly explain these features in more details?

Thanks a lot,

Dinh

Igor S. wrote:

Changes with nginx 0.8.25 16 Nov
2009

*) Feature: regular expression named captures.

*) Feature: now URI part is not required a "proxy_pass" directive if
   variables are used.

*) Feature: now the "msie_padding" directive works for Chrome too.

Feature: the ngx_http_degradation_module. ?

How does this work?

2009/11/16 Igor S. [email protected]:

On Tue, Nov 17, 2009 at 03:19:44AM +0100, Dinh P. wrote:

Changes with nginx 0.8.25 16 Nov
2009

*) Feature: regular expression named captures.
server {
    server_name  ~^(www\.)?(?<name>.+)$;
    root  $name;
}

location ~^(?<script_name>/.+\.php)(?<path_info>.*)$ {
    fastcgi_param  SCRIPT_FILENAME  /path/to/php$script_name;
    fastcgi_param  PATH_INFO        $path_info;
*) Feature: now URI part is not required a "proxy_pass" directive if
   variables are used.
proxy_pass  http://$backend;

Before you should add URI part:
proxy_pass http://$backend$request_uri;

*) Feature: now the "msie_padding" directive works for Chrome too. 

msie_padding on; # default

The directive adds lines to the default error pages to increase their
size
to more than 512 bytes: