error pages: bug or feature?

Piotr Sikora piotr.sikora at frickle.com
Sun Jul 19 04:28:25 MSD 2009


Hello,
I noticed that config:

server {
    location / {
        // doesn't exist, will result in 502
        proxy_pass    http://localhost:11111;
        error_page    502    @fetch;
    }
    location @fetch {
        proxy_pass    http://localhost:8080;
    }
}

will result in response from http://localhost:8080 and "502 Bad Gateway" 
status,
while config:

server {
    location / {
        // doesn't exist, will result in 502
        proxy_pass    http://localhost:11111;
        error_page    502    = @fetch;
    }
    location @fetch {
        proxy_pass    http://localhost:8080;
    }
}

will result in response from http://localhost:8080 and "200 OK" status.

The cause of this difference is '=' sign and the fact that 
ngx_http_core_error_page function sets overwrite to -1 in first case, and 
overwrite to 0 in second case.

Is passing original response status with headers and body from "error page" 
some kind of feature or is it a bug and error pages without '=' shouldn't be 
allowed at all?

Best regards,
Piotr Sikora < piotr.sikora at frickle.com >






More information about the nginx mailing list