Nginx – what is nginx location ~* and ~

nginx

I am trying to understand nginx a little better and trying to form a regex where every url that does NOT match /api/postdataV1 is routed to a different cluster of servers. I keep seeing these two things in examples with no explanation

location ~ {some regex}

location ~* (some regex}

My first question is what are these ~ and ~* (I think the ~ just means I am specifying a regex?) but what about ~* then?

What I think what I want is this. Would this be correct?

location ~ ^/api/postdataV1$ {
    #matches to this route to where I want
}

location / {
    #This will be everything except /api/postdataV1 I think
}

Would this be correct? but what about the ~* …I don't get that one

thanks,
Dean

Best Answer

As stated in nginx documentation, ~* regex is for case-insensitive matching and ~ are for case-sensitive.

Your syntax is ok, but it can be rewritten without regex (shortest location goes last in request matching):

location /api/postdata {
}

location / {
}
Related Topic