Post_action vs error_page seems doesn't work

hi,
what I want to do is:

  1. trying to serve content like url =>
    http://my.domain.tld/static/bla-bla-bla?id=12345
  2. check an html page on cache (on redis)
  3. if doesn’t exists, let’s create it (via php script
    /api/entrypoint.php?.. )
  4. always update statistical counters (asyncronous batch)

problem:
step 4) never processed until I comment “error page 404 = …”.
In thi case all request to redis are processed (via 127.0.0.1:33333 and
127.0.0.1:22222) but a 404 error on browser too :frowning:

my nginx.conf

location ^~ /static/ {

2) check an html page (on redis)

set $redis_key “my:permalink:$arg_id:html”;
redis_pass 127.0.0.1:33333;

3) if doesn’t exists, let’s create it (via php)

error_page 404 = /api/entrypoint.php?action=do_html&id=$arg_id;

4) always update statistical counters (asyncronous batch)

post_action /update_counters;
}

location /update_counters {

set $queue_name ‘my:queue:to:process:asyncronous’;
redis2_query lpush $queue_name $request_uri;
redis2_pass 127.0.0.1:22222;

}

pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ .php$ {

root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

}

thanks
maxf3r

Hello!

On Mon, Feb 28, 2011 at 10:47:21PM +0100, massimo ferrari wrote:

problem:
step 4) never processed until I comment “error page 404 = …”.
In thi case all request to redis are processed (via 127.0.0.1:33333 and
127.0.0.1:22222) but a 404 error on browser too :frowning:

You have to specify post_action for your error_page as well.

Maxim D.