# Wrong status code when proxying 404 errors

**URL:** <https://www.ruby-forum.com/t/wrong-status-code-when-proxying-404-errors/128503>\
**Category:** NGINX\
**Created:** [February 8, 2008, 7:17am UTC](https://www.ruby-forum.com/t/wrong-status-code-when-proxying-404-errors/128503 "2008-02-08T07:17:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jodok\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/c2a13f/32.png) [@Jodok\_B](https://www.ruby-forum.com/u/Jodok_B)\
**Post date:** [February 8, 2008, 7:17am UTC](https://www.ruby-forum.com/t/wrong-status-code-when-proxying-404-errors/128503/1 "2008-02-08T07:17:03Z")

</div>

hi,

i’m trying to use an upstream proxy to generate a 404 error page.  
my config looks like that:

location ‘/error/404’ {  
rewrite ^/(.\*) /news/404 break;  
proxy\_pass http://backend\_varnish;  
}

```
  error_page 404 = /error/404;

```

unfortunately nginx returns a response header of 200 OK

i also tried

error\_page 404 =404 /error/404;

but that doesn’t work as well.  
any ideas?

thanks

jodok

---

<div class="post-metadata">

**Author:** ![Jodok\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/c2a13f/32.png) [@Jodok\_B](https://www.ruby-forum.com/u/Jodok_B)\
**Post date:** [February 8, 2008, 7:42am UTC](https://www.ruby-forum.com/t/wrong-status-code-when-proxying-404-errors/128503/2 "2008-02-08T07:42:50Z")

</div>

remove the =

On 2/7/08, Jodok B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> }  
> but that doesn’t work as well.  
> any ideas?
> 
> thanks
> 
> jodok

–  
Abdul-Rahman A.

IM: removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![Jodok\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/c2a13f/32.png) [@Jodok\_B](https://www.ruby-forum.com/u/Jodok_B)\
**Post date:** [February 8, 2008, 7:48am UTC](https://www.ruby-forum.com/t/wrong-status-code-when-proxying-404-errors/128503/3 "2008-02-08T07:48:43Z")

</div>

Hello Jodok,

Friday, February 8, 2008, 2:23:10 AM, you wrote:

> hi,

> i’m trying to use an upstream proxy to generate a 404 error page.  
> my config looks like that:

- location ‘/error/404’ {

- location = /error/404 {

> ```
> rewrite ^/(.*) /news/404 break;
> proxy_pass http://backend_varnish;
> 
> ```
> 
> }

> ```
> error_page 404 = /error/404;
> 
> ```

> unfortunately nginx returns a response header of 200 OK

> i also tried

> error\_page 404 =404 /error/404;

> but that doesn’t work as well.  
> any ideas?

> thanks

---

<div class="post-metadata">

**Author:** ![Jodok\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/c2a13f/32.png) [@Jodok\_B](https://www.ruby-forum.com/u/Jodok_B)\
**Post date:** [February 8, 2008, 8:09am UTC](https://www.ruby-forum.com/t/wrong-status-code-when-proxying-404-errors/128503/4 "2008-02-08T08:09:48Z")

</div>

On Thu, Feb 07, 2008 at 09:23:10PM +0100, Jodok B. wrote:

> unfortunately nginx returns a response header of 200 OK
> 
> i also tried
> 
> error\_page 404 =404 /error/404;
> 
> but that doesn’t work as well.  
> any ideas?

First, some optimization:

location = /error/404 {  
proxy\_pass http://backend\_varnish/news/404;  
}

Second, you should use either

```
  error_page 404 /error/404;

```

or

```
  error_page 404 =404 /error/404;

```

But not

```
  error_page 404 = /error/404;

```

unless http://backend\_varnish/news/404 returns 404 status.

If the first two variants do not work, could you should debug log ?
