Pastaruoju metu mano darbe atsirado šio aspekto poreikis, pradinė srovė yra visiškai dinamiška, nurodyta kliento, pradžioje yra tam tikrų klaidų, o galiausiai DNS paslauga nurodoma per sprendiklį, konkretus procesas yra toks.
1. Pradėkite lipti ant duobės
Nginx konfigūracija yra tokia:
Kai siunčiu tokio pobūdžio užklausą:
Buvo pranešta apie šią klaidą:
access.log: 127.0.0.1 - - [14/Sep/2017:23:37:10 +0800] "GET / HTTP/1.1" 502 179 "-" "curl/7.29.0"
error.log: 2017/09/14 23:38:31 [Klaida] 25307#25307: *48 Nenustatytas sprendikliswww.baidu.com, klientas: 127.0.0.1, serveris: localhost, užklausa: "GET / HTTP/1.1", host: "127.0.0.1:8001" Akivaizdu, kad ši problema teigia, kad nenurodžius sprendimo priemonės atsiranda pasirinktinis upstreamwww.baidu.com.
2. Naudokite "Resolver" domeno vardo skiriamajai gebai apibrėžti
Pakeista nginx konfigūracija yra tokia:
Dabar prašymai yra normalūs 200:
req: curl "127.0.0.1:8001/" -H "prieš srovę:www.baidu.com" -voa curl "127.0.0.1:8001/" -H "prieš srovę:www.qq.com" -voa
access.log: 127.0.0.1 - - [14/Sep/2017:23:44:01 +0800] "GET / HTTP/1.1" 200 2381 "-" "curl/7.29.0" 127.0.0.1 - - [14/Sep/2017:23:44:07 +0800] "GET / HTTP/1.1" 200 244182 "-" "curl/7.29.0" 3. Sprendimo priemonės instrukcijos
Sprendimo priemonės sintaksė yra tokia:
Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default: —
Context: http, server, location Galite sukonfigūruoti kelias DNS paslaugas, nginx naudos apklausą, kad pasiektų DNS paslaugas, nginx talpykloje išsaugos DNS domeno vardo rezoliucijos rezultatus, talpyklos laikas nurodomas valid, o IPv6 naudojamas IPv6 įjungti arba išjungti.
resolver_timeout naudojamas DNS skiriamosios gebos skirtajam laikui nurodyti.
|