Random Error Pages to be served using nginx

Hi all,

I’m looking for a way to serve random error pages for 504/502 errors.
In addition i also want the error pages to be served based on the
$request_uri.

Something like this:

  1. When this URL is requested: http://mydomain.com/search?type=ABC
    and if the proxy returns a 504 or 502 and when the GET parameter ‘type’
    has
    ‘ABC’ as value then serve
    any random document from “/path/to/custom/error/typeABC/”

  2. and the same applies to http://mydomain.com/search?type=DEF just that
    the
    directory to be used to serve
    error document should be “/path/to/custom/error/typeDEF”

I’m sure this can be achieved with named locations and probably
try_files.
But I’m just not able to get anything working.

Would appreciate some pointers.

Regards
Harish

On Sun, Dec 13, 2009 at 12:41:56AM +0530, Harish S. wrote:

any random document from “/path/to/custom/error/typeABC/”

  1. and the same applies to http://mydomain.com/search?type=DEF just that the
    directory to be used to serve
    error document should be “/path/to/custom/error/typeDEF”

I’m sure this can be achieved with named locations and probably try_files.
But I’m just not able to get anything working.

Would appreciate some pointers.

./configure --with-http_random_index_module

error_page  502 504 /error/type$arg_type/';

location = /error/typeABC/ {
    root  /path/to/custom/;
    random_index  on;
}

location = /error/typeDEF/ {
    root  /path/to/custom/;
    random_index  on;
}

# fallback
location /error/type {
    root  /path/to/custom/;
    random_index  on;
}


Igor S.
http://sysoev.ru/en/