Priorità alla posizione di Nginx


186

In quale ordine vengono attivate le direttive sulla posizione?

Risposte:


352

Dai documenti del modulo core HTTP :

  1. Direttive con il prefisso "=" che corrispondono esattamente alla query. Se trovato, la ricerca si interrompe.
  2. Tutte le restanti direttive con stringhe convenzionali. Se questa corrispondenza utilizzava il prefisso "^ ~", la ricerca si interrompe.
  3. Espressioni regolari, nell'ordine in cui sono definite nel file di configurazione.
  4. Se il n. 3 ha prodotto una corrispondenza, viene utilizzato quel risultato. Altrimenti, viene utilizzata la partita dal n. 2.

Esempio dalla documentazione:

location  = / {
  # matches the query / only.
  [ configuration A ] 
}
location  / {
  # matches any query, since all queries begin with /, but regular
  # expressions and any longer conventional blocks will be
  # matched first.
  [ configuration B ] 
}
location /documents/ {
  # matches any query beginning with /documents/ and continues searching,
  # so regular expressions will be checked. This will be matched only if
  # regular expressions don't find a match.
  [ configuration C ] 
}
location ^~ /images/ {
  # matches any query beginning with /images/ and halts searching,
  # so regular expressions will not be checked.
  [ configuration D ] 
}
location ~* \.(gif|jpg|jpeg)$ {
  # matches any request ending in gif, jpg, or jpeg. However, all
  # requests to the /images/ directory will be handled by
  # Configuration D.   
  [ configuration E ] 
}

Se è ancora confuso, ecco una spiegazione più lunga .



4
Si noti che entrambe /e le /documents/regole corrispondono alla richiesta /documents/index.html, ma quest'ultima regola ha la precedenza poiché è la regola più lunga.
arrakis_sun,

70

Spara in questo ordine.

  1. = (Esattamente)

    location = /path

  2. ^~ (partita diretta)

    location ^~ /path

  3. ~ (distinzione tra maiuscole e minuscole)

    location ~ /path/

  4. ~* (insensibile al maiuscolo / minuscolo)

    location ~* .(jpg|png|bmp)

  5. /

    location /path


3
^ ~ (partita in avanti) molto importante
iwind

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.