nginx gagal menyelesaikan nama-nama hulu pada ulang bahkan jika mereka DO diselesaikan oleh OS

9

Ketika memuat ulang config (khusus untuk proxy_pass) - kadang-kadang ini akan terlihat: nginx: [emerg] host tidak ditemukan di hulu

Namun - nama server upstream AKAN menyelesaikan di os (linux) - hanya nginx yang tampaknya memiliki masalah ini.

Ini tampaknya merupakan regresi baru-baru ini - karena tampaknya tidak terjadi sebelum versi 1.0.10.

Adakah yang memperhatikan ini baru-baru ini?

Mencoba mempersempit tempat untuk mencari.

Michael Neale
sumber

Jawaban:

6

Nginx secara internal melakukan cache DNS selama 5 menit (tidak yakin apakah ini dapat dikonfigurasi di versi yang lebih baru). Mungkin resolver Anda gagal karena suatu alasan, maka Nginx cache hasil ini.

Saya telah melihat ini pada sistem dengan IPv6 diaktifkan sejak menjadi default, resolver meminta kedua rekaman IPv4 dan IPv6 secara paralel. Ini dapat dilihat sebagai banjir oleh resolver yang menghasilkan masalah DNS sementara. Saya melihat popup ini pada sebuah kotak dengan banyak lalu lintas email ketika melakukan verifikasi nama domain.

Coba tambahkan:

  options single-request

ke /etc/resolv.conf

Ini menyebabkan pencarian IPv6 / v4 dilakukan secara berurutan.

jeffatrackaid
sumber
Terima kasih atas jawaban anda. Ternyata ini adalah kesalahan dengan mengacaukan nama host di file konfigurasi. Ups. Tetapi jawaban Anda sebenarnya sangat berguna - jadi saya akan menandainya sebagai yang benar - karena akan menyebabkan masalah DNS, pasti (mengecamnya dengan permintaan).
Michael Neale
2
Saya memiliki masalah yang sama - apa yang sebenarnya Anda lakukan dalam file konfigurasi untuk memperbaikinya (terima kasih sebelumnya)
Zabs
Anda sekarang dapat menambahkan value=30sopsi ke resolveruntuk menentukan berapa lama alamat IP yang diselesaikan harus disimpan dalam resolvercache.
Alexis Wilke