set $memcached_key $uri;
default_type “text/html; charset=utf-8”;
error_page 404 @fallback;
The problem is, that whenever memcached does not find the value in
memory, I get a 404 status code.
My fallback is an Apache HTTP server which handles the request via
mod_php. In case of a 404 the request is forwarded to Apache/PHP, PHP
updates memcached, and the result is returned via nginx.
BUT the status code header is not correct. Even if I manually set a 200
OK header in PHP, a 404 header is returned by nginx.
If the the URI is in memcached already, a normal 200 OK header is
returned.
Maybe I should add, that the returned HTML is always correct, whether
memcached finds it in memory or not…it’s only the status code header
that is wrong.
On Wed, Oct 21, 2009 at 05:27:11AM -0400, mastercan wrote:
Hi,
I have the following config (just a snippet):
set $memcached_key $uri;
default_type “text/html; charset=utf-8”;
error_page 404 @fallback;
error_page 404 @fallback;
error_page 404 = @fallback;
The problem is, that whenever memcached does not find the value in memory, I get a 404 status code.
My fallback is an Apache HTTP server which handles the request via mod_php. In case of a 404 the request is forwarded to Apache/PHP, PHP updates memcached, and the result is returned via nginx.
BUT the status code header is not correct. Even if I manually set a 200 OK header in PHP, a 404 header is returned by nginx.
If the the URI is in memcached already, a normal 200 OK header is returned.
So - to me this seems like a bug?
Yes, in your config.
And I checked wiki - it seems to have incorrect description for
error_page. I’ve reverted erroneous change, it should now be fine
now. Feel free to see for more details: