need help calling PHP as a fallback

davvv nginx-forum at nginx.us
Tue Jan 5 07:47:04 MSK 2010


I wrote a very scalable HTTP event server in C++ and I would like to make it work with nginx.
My server is on port 9001, PHP-FPM is running on port 9000.

My server is set up to return a 504 error when an event is found, and the 504 error should trigger the PHP backend.
I've been trying to figure out a way to make it work with nginx and it's something so elementary, I think I'm just being really stupid.. so I need some help.

This is basically a short rundown of what happens.
A client hits something like myhost.com/event/, and hangs until there is an event to server, expiring after 30 seconds by default (if it expires, my server returns a "NO EVENT" reply, which works); however, if there IS an event, my server is set up to kick off the client, triggering a 504. Somehow I want to catch that 504, and redirect the client to a PHP backend (with the query intact).

This is what I have so far. I haven't worked much with nginx so bear with me...

        location /event/ {
            proxy_pass http://localhost:9001/callback.eve;
            proxy_intercept_errors on;
            error_page 504 = @fallback; #if I straight up put backend.php here, the POST/GET variables disappear
        }

        location @fallback {
            internal;
            fastcgi_param SCRIPT_FILENAME $document_root/backend.php;
            fastcgi_param  QUERY_STRING     $query_string;
            include fastcgi_params;
            fastcgi_pass  127.0.0.1:9000;
        }

I get some really strange results with the aforementioned config.. nginx doesn't break, I don't get an error or anything. PHP doesn't break either. All I get is a blank page (as in, totally blank) with a 200 OK code. I'm really confused here, and I'm almost certain there has to be an easy way of doing this

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,36944,36944#msg-36944




More information about the nginx mailing list