Prioritas lokasi nginx

186

Apa urutan arahan lokasi?

pengguna650505
sumber

Jawaban:

352

Dari dokumentasi modul inti HTTP :

  1. Arahan dengan awalan "=" yang persis sama dengan kueri. Jika ditemukan, pencarian berhenti.
  2. Semua arahan yang tersisa dengan string konvensional. Jika pertandingan ini menggunakan awalan "^ ~", pencarian berhenti.
  3. Ekspresi reguler, dalam urutan yang ditentukan dalam file konfigurasi.
  4. Jika # 3 menghasilkan kecocokan, hasil itu digunakan. Jika tidak, kecocokan dari # 2 digunakan.

Contoh dari dokumentasi:

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

Jika masih membingungkan, inilah penjelasan yang lebih panjang .

Martin Redmond
sumber
9
dengan itu dapat membantu Anda :) github.com/detailyang/nginx-location-match-visible
user2228392
4
Perhatikan bahwa keduanya /dan /documents/aturan cocok dengan permintaan /documents/index.html, tetapi aturan yang terakhir diutamakan karena itu aturan terpanjang.
arrakis_sun
69

Itu menyala dalam urutan ini.

  1. = (persis)

    location = /path

  2. ^~ (pertandingan maju)

    location ^~ /path

  3. ~ (peka huruf besar reguler)

    location ~ /path/

  4. ~* (kasus ekspresi reguler tidak sensitif)

    location ~* .(jpg|png|bmp)

  5. /

    location /path

Don Dilanga
sumber
3
^ ~ (pertandingan
penyerang