Welcome! Log In Create A New Profile

Advanced

Re: error pages: bug or feature?

July 19, 2009 01:55AM
On Sun, Jul 19, 2009 at 02:28:25AM +0200, Piotr Sikora wrote:

> 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?

This is not a bug and not a feature (if you mean a feature as "well known
and documentated bug"). This is intended behaviour:

http://wiki.nginx.org/NginxHttpCoreModule#error_page

Otherwise, you will not be able to show your custom static error_page's
with original response status, it would always return 200 response:

error_page 404 /404.html;

location = /404.html {
root /path/to/page;
}


--
Igor Sysoev
http://sysoev.ru/en/
Subject Author Posted

error pages: bug or feature?

Piotr Sikora July 18, 2009 08:28PM

Re: error pages: bug or feature?

Igor Sysoev July 19, 2009 01:55AM

Re: error pages: bug or feature?

Piotr Sikora July 19, 2009 02:56AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 176
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready