apa itu lokasi nginx ~ * dan ~

15

Saya mencoba memahami nginx sedikit lebih baik dan mencoba membentuk regex di mana setiap url yang TIDAK cocok /api/postdataV1dirutekan ke sekelompok server yang berbeda. Saya terus melihat dua hal ini dalam contoh tanpa penjelasan

location ~ {some regex}

location ~* (some regex}

Pertanyaan pertama saya adalah apa ini ~dan ~*(saya pikir yang ~benar berarti saya menentukan regex?) Tetapi bagaimana dengan ~*itu?

Apa yang saya pikirkan adalah apa yang saya inginkan. Apakah ini benar?

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

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

Apakah ini benar? tapi bagaimana dengan ~*... saya tidak mendapatkannya

terima kasih, Dean

Dean Hiller
sumber
wiki selalu layak untuk dilihat terlebih dahulu.
pria itu dari sana
1
Saya telah melihat-lihat dokumen, tetapi tidak menemukan tautan yang tepat dan berakhir pada halaman dokumentasi untuk "lokasi" yang benar-benar harus memiliki informasi itu tetapi tidak. (Wiki seingat saya merujuk saya pada dokumentasi sebagai yang paling mutakhir).
Dean Hiller
Saya akan google nginx location, hit pertama adalah ini :) tetapi saya harus mengakui, orang harus terbiasa dengan dokumentasi nginx, esp. menemukan hal yang benar di bawah bagian modul.
pria itu dari sana
1
halaman pertama google saya menggunakan permintaan pencarian Anda persis seperti apa yang saya baca pertama kali di ... wiki.nginx.org/HttpCoreModule yang di RED mengatakan bahwa artikel tersebut sudah usang menuntun saya ke halaman lain (Anda harus tahu google berdasarkan hasil yang berbeda berdasarkan pada siapa Anda-jika login-dan server mana Anda akhirnya memukul). Saya tidak mendapatkan halaman yang diberikan di bawah ini sama sekali yang diguncang menggunakan google dan membaca sekitar :( !!!
Dean Hiller

Jawaban:

16

Seperti yang dinyatakan dalam dokumentasi nginx , ~*regex untuk pencocokan case-sensitive dan ~untuk case-sensitive.

Sintaks Anda baik-baik saja, tetapi dapat ditulis ulang tanpa regex (lokasi terpendek berlangsung terakhir dalam pencocokan permintaan):

location /api/postdata {
}

location / {
}
Andrei Mikhaltsov
sumber
1
ah, keren ... ya, saya mencoba googling ~ * tetapi google tidak mengindeks karakter khusus terlalu baik (nginx terlalu buruk tidak menggunakan arahan sebagai gantinya karena saya mungkin akan mendarat tepat di halaman itu)
Dean Hiller
@DeanHiller Sepertinya google memperbaiki bug itu: D
Yarek T
Jawaban Anda mungkin tidak benar karena /api/PostDatatidak akan cocok tanpa~*
Devy