Nginx termasuk file konfigurasi tidak berurutan?

12

Apakah urutan Nginx termasuk file konfigurasi tetap, atau acak? Apache secara eksplisit menyatakan karakter wildcard diperluas dalam urutan abjad. Dengan Nginx sepertinya ini tidak berlaku, dan manual tidak mengatakan apa-apa tentang itu .

Dalam pengaturan saya, 20_example.comdimasukkan sebelumnya 00_default, yang mengalahkan tujuan saya mendefinisikan arahan bersama (seperti format log) di sana.

Jan Fabry
sumber

Jawaban:

3

Jawaban AD7six tidak sepenuhnya benar. Pesanan juga penting ketika dua blok server memiliki "spesifisitas" yang sama, misalnya ketika keduanya menggunakan regex di server_name, dan permintaan yang masuk cocok dengan keduanya:

server {
    server_name ~^(www\.)?(?<domain>foo\.com|bar\.com|baz\.com)$;
    ...
}

dan

server {
    server_name ~^(www\.)?(?<domain>.+)$;
    ...
}

Dalam skenario ini, dua blok server tidak dapat tersebar di dua file karena pesanan mereka tidak dapat dijamin.

rufo
sumber
1

Sebagai OP menunjukkan urutan log_format itu memang sangat penting, dalam kasus format log_ kustom, jika Anda menempatkan di dir yang sama kedua jenis file, beberapa file dengan log_formats, beberapa file dengan blok server yang menggunakan format log_, hasilnya akan menjadi konfigurasi yang sangat tidak dapat diulang.

Di tempat kerja ketika kami pertama kali memindahkan pertanian nginx buatan tangan kami menjadi boneka, kami mulai melihat beberapa instalasi nginx dari awal hingga gagal di perangkat keras / setup yang sama, setelah banyak men-debug situasi aneh seperti memiliki dua / etc / nginx / * (- r) dengan md5match dan biner yang sama menghasilkan hasil yang berbeda (kesalahan log_format tidak valid pada satu dan bekerja pada yang lain), kami belajar dengan cara yang sulit bahwa memesan itu memang sangat penting untuk beberapa arahan seperti log_format.

Kami memperbaiki masalah dengan hanya memindahkan generasi server yang keluar dari conf.d / * ke folder lain yang disertakan setelah conf.d / *.

Keberanian
sumber