# HG changeset patch # User Igor Sysoev # Date 1277908768 0 # Node ID a870639d2970fed9bff07a41b93d5ee405970c19 # Parent 8649a0c0f09d5757ef48a8054c611f19f53e76d1 Fix processing error_page 502 504 /zero; location = /zero { return 204; } The bug has been introduced in r3634. The fix also allow to use: error_page 502 504 = /zero; location = /zero { return 200; } This case still does not work: error_page 502 504 /zero; location = /zero { return 200; } diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c --- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -1748,6 +1748,7 @@ ngx_http_send_response(ngx_http_request_ r->headers_out.status = status; if (status == NGX_HTTP_NO_CONTENT) { + r->header_only = 1; return ngx_http_send_header(r); } diff --git a/src/http/ngx_http_header_filter_module.c b/src/http/ngx_http_header_filter_module.c --- a/src/http/ngx_http_header_filter_module.c +++ b/src/http/ngx_http_header_filter_module.c @@ -170,6 +170,10 @@ ngx_http_header_filter(ngx_http_request_ #endif u_char addr[NGX_SOCKADDR_STRLEN]; + if (r->header_sent) { + return NGX_OK; + } + r->header_sent = 1; if (r != r->main) {