Proxy pass location inheritance

Maxim Dounin mdounin at
Fri Feb 14 12:19:50 UTC 2014


On Thu, Feb 13, 2014 at 06:43:08PM +0000, Brian Hill wrote:

> Hello, we are using NGINX to serve a combination of local and 
> proxied content coming from both an Apache server (mostly PHP 
> content) and IIS 7.5 (a handful of third party .Net 
> applications). The proxy is working properly for the pages 
> themselves, but we wanted set up a separate location block for 
> the "static" files (js, images, etc) to use different caching  
> rules. In theory, each of the static file location blocks should 
> be serving from the location specified in its parent location 
> block, but instead ALL image requests are being routed to the 
> root block.


> Three of the four conditions are working properly. 
> A request for gets sent to
> A request for gets sent to
> A request for gets sent to
> But the last condition is not working properly.
> A request for should be sent to
> Instead, it's being routed to, which is an invalid location.
> So it appears that the first server location block is catching 
> ALL of the requests for the static files.  Anyone have any idea 
> what I'm doing wrong?


    location / {
        location ~ regex1 {
            # regex inside /

    location ~ regex2 {
        # regex

The question is: where a request matching regex1 and regex2 will 
be handled?

The answer is - in "location ~ regex1".  Locations given by 
regular expressions within a matching prefix location are tested 
before other locations given by regular expressions.

Maxim Dounin

More information about the nginx mailing list