Nginx konum önceliği


186

Konum direktifleri hangi sırayla açılır?

Yanıtlar:


352

Gönderen HTTP çekirdek modülü docs :

  1. Sorgu ile tam olarak eşleşen "=" önekine sahip yönergeler. Eğer bulunursa, arama durur.
  2. Geleneksel dizelerle geriye kalan tüm yönergeler. Bu eşleşme "^ ~" önekini kullandıysa arama durur.
  3. Düzenli ifadeler, yapılandırma dosyasında tanımlandıkları sırayla.
  4. # 3 bir eşleşme sağladıysa, bu sonuç kullanılır. Aksi takdirde, # 2'den maç kullanılır.

Belgelerden örnek:

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 ] 
}

Hala kafa karıştırıcıysa, daha uzun bir açıklama .


9

4
Not hem o /ve /documents/kurallar istekle eşleşen /documents/index.html, ancak en uzun kuraldır beri İkinci kural önceliklidir.
arrakis_sun

70

Bu sırayla ateşlenir.

  1. = (kesinlikle)

    location = /path

  2. ^~ (ileri eşleşme)

    location ^~ /path

  3. ~ (düzenli ifade büyük / küçük harfe duyarlıdır)

    location ~ /path/

  4. ~* (düzenli ifade büyüklüğüne duyarsız)

    location ~* .(jpg|png|bmp)

  5. /

    location /path


3
^ ~ (ileri maç) çok önemli
iwind

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.