Saya mengalami kesulitan memahami lokasi bersarang di nginx. Saya memiliki dua lokasi dengan beberapa petunjuk konfigurasi yang sama, jadi daripada mengulangi arahan, saya lebih suka mengulangi URI menggunakan ekspresi reguler:
location ~ /a|/b {
location /a {
}
location /b {
}
}
Namun, ini memberikan kesalahan
nginx: [emerg] location "/a" is outside location "/a|/b" in /etc/nginx/nginx.conf:36
Tanpa atau |
sepertinya tidak apa-apa.
location ~ /a {
location /a {
}
}
Apa yang saya lakukan salah? Apakah ada cara yang lebih baik untuk melakukan ini tanpa mengulangi apa pun? Bisakah saya mengelompokkan lokasi dengan cara lain?
Jawaban:
Pertanyaan lama, tetapi masalahnya adalah karena lokasi induk adalah lokasi regex sedangkan lokasi bersarang adalah lokasi awalan.
Anda hanya dapat menetapkan lokasi awalan bersarang saat lokasi induk juga merupakan lokasi awalan:
Ketika lokasi induk ditentukan oleh regex, setiap lokasi bersarang juga harus ditentukan oleh regex:
Namun, Anda juga dapat menentukan lokasi regex bersarang saat lokasi induk adalah lokasi awalan:
sumber
/b
akan menimbulkan kesalahan?location /a { }
pelat - apakah pesanan itu penting?