Custom error_page basic config problem.
Maxim Dounin
mdounin at mdounin.ru
Mon Jan 21 03:14:16 UTC 2013
Hello!
On Mon, Jan 14, 2013 at 07:02:41PM -0300, Agus wrote:
> Hi fellows,
>
> I was having trouble creating a custom error_page. Here's the simple test
> config i did:
>
> server_name www.test1.com.ar;
>
> error_log logs/www.test1.com.ar.http.error.log debug;
> access_log logs/www.test1.com.ar.http.access.log main;
>
> root /usr/local/www/www.test1;
>
> location / {
> # Esto es para simular el geoip con un if.
> if ( $remote_addr = "10.24.18.2" ) {
> error_page 401 /custom/404b.html;
> return 401;
> }
> }
>
>
> With that, i only got the nginx default error page. After turning on debug
> i saw that when nginx goes to fetch the error_page mentioned it searches in
> location / so it denies and send me the default error.
This is expected behaviour - you return 401 once again during
error_page handling, and hence get builtin error.
> Now i added a location like this
>
> location = /custom/404b.html {
> internal;
> }
>
>
> Which made it work.
This is how it's usually handled - via separate location without a
check to deny access.
> My question is is this is OK. If my solution is the correct one or perhaps
> theres a better one. Also, this test is easy cause its local, but i want to
> implemtn this in a proxy_pass situation. Probably the intercept_error..
>
> Thanks for any hints you can give.
Separate location for handling errors is fine.
--
Maxim Dounin
http://nginx.com/support.html
More information about the nginx
mailing list