> On 18 Apr 2018, at 01:35, c0nw0nk <[email protected]> wrote:
> 
> Thank you for the help :)
> 
> A new dilemma has occurred from this.
> 
> I add a location like so.
> 
> location ^~/media/files/ {
> add_header X-Location-Order First;
> }
> location ~ \.mp4$ {
> add_header X-Location-MP4 Served-from-MP4-location;
> }
> location ~*
> \.(ico|png|jpg|jpeg|gif|flv|mp4|avi|m4v|mov|divx|webm|ogg|mp3|mpeg|mpg|swf|css|js)$
> {
> add_header X-Location-Order Second;
> }
> 
> 
> How can i make it so my MP4 location is not overridden by the
> ^~/media/files/ location.
> 
> I would like the responses to be like this.
> 
> URL : domain_name_dot_com/media/files/image.jpg
> Header response is X-Location-Order: First
> 
> URL : domain_name_dot_com/media/files/video.mp4
> Header response is X-Location-MP4: Served-from-MP4-location
> 
> URL : domain_name_dot_com/media/files/other.css
> Header response is X-Location-Order: Second
> 
> 
> How can I achieve that is it possible to have a location inside a location ?

If you prefer execution of the listed order, the you should use regex locations 
only:

location ~ ^/media/files/.+\.mp4$ {
    add_header X-Location-MP4 Served-from-MP4-location;
}
location ~ ^/media/files/ {
    add_header X-Location-Order First;
}
location ~* 
\.(ico|png|jpg|jpeg|gif|flv|mp4|avi|m4v|mov|divx|webm|ogg|mp3|mpeg|mpg|swf|css|js)$
 {
    add_header X-Location-Order Second;
}

However this approach is not scaleable. Suppose you have hundreds of locations, 
then you have
to find appropriate place where to add a new location and have to investigate 
the whole large
configuration to understand how this tiny change will affect the configuration.

The other approach is to use prefix locations and to isolate regex location 
inside prefix ones:

location / {
    location ~* 
\.(ico|png|jpg|jpeg|gif|flv|mp4|avi|m4v|mov|divx|webm|ogg|mp3|mpeg|mpg|swf|css|js)$
 {
        add_header X-Location-Order Second;
    }
}

location /media/files/ {
    add_header X-Location-Order First;

    location ~ \.mp4$ {
        add_header X-Location-MP4 Served-from-MP4-location;
    }
}

With this configuration you can sort the first level prefix locations in any 
order.


-- 
Igor Sysoev
http://nginx.com

_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to