forced 404 without a location display ?

Jonathan Vanasco nginx at
Tue Jul 12 22:45:21 UTC 2016

On Jul 11, 2016, at 4:27 PM, Maxim Dounin wrote:
> No location information is added by nginx to error pages, and 
> never was.  You are probably using something with 3rd party 
> patches.  An obvious fix is to switch to using vanilla nginx 
> instead, it can be downloaded here:

On Jul 11, 2016, at 4:25 PM, Oleg A. Mamontov wrote:

> =============================================
> location /paths/to/ {
>    if ( !-f /etc/nginx/_flags/is_running ) {
>        rewrite ^ /is_running last;
>    }
> }
> location = /is_running {
>    internal;
>    return 404 'nothing\n';
> }
> =============================================

Thanks to you both!

I spent way more time than I should tracking the issue.  I finally figured it out.  Details below:

1. I am using a non-standard nginx -- I run openresty.  I thought this might have been the issue so started creating test-cases to pin down, and running against all the nginx & openresty versions. I could not consistently get this to repeat.

2. The first part of the problem is that I had `break` on my rewrite, instead of `last`.

3. The second part of my problem, and this is where the confusion happened -- a proxypass was involved

Using `last`:
	what i wanted happened

Using `break`
	the rewrite to `/is_running` got passed to the proxypass; the application was creating the error message
	the app's error message template was very similar to nginx -- and that threw me off
	i only figured this out, because nginx served an error when the application was taken offline during an update

More information about the nginx mailing list