We have established that Nginx offers you the possibility to fine-tune your configuration down to three levels—at the protocol level (http
block), the server level (server
block), and the requested URI level (location
block). Let us now detail the latter.
Nginx allows you to define location
blocks by specifying a pattern that will be matched against the requested document URI.
server { server_name website.com; location /admin/ { # The configuration you place here only applies to # http://website.com/admin/ } }
Instead of a simple folder name, you can indeed insert complex patterns. The syntax of the location
block is:
location [=|~|~*|^~|@] pattern { ... }
The first optional argument is a symbol called location modifier that defines the way Nginx matches the specified pattern, and also defines the very nature of the pattern (simple string or regular expression). The following paragraphs detail the different modifiers and their behavior.