V zadnjem času se je ta vidik pojavil v mojem delu, upstream je popolnoma dinamičen, določen s strani odjemalca, na začetku so nekatere napake, nazadnje pa je DNS storitev določena preko resolverja, specifičen postopek je naslednji.
1. Začnite stopati na jamo
Konfiguracija nginx je naslednja:
Ko pošljem takšno prošnjo:
Prijavljena je bila naslednja napaka:
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 [napaka] 25307#25307: *48 ni definiranega resolverja za rešitevwww.baidu.com, odjemalca: 127.0.0.1, strežnik: localhost, zahteva: "GET / HTTP/1.1", gostitelj: "127.0.0.1:8001" Jasno je, da ta številka navaja, da nedoločitev resolverja povzroča prilagojene upstreamwww.baidu.com.
2. Uporabite Resolver za definiranje reševanja domenskih imen
Spremenjena konfiguracija nginx je naslednja:
Zdaj je zahtev običajnih 200:
req: curl "127.0.0.1:8001/" -H "upstream-host:www.baidu.com" -voa curl "127.0.0.1:8001/" -H "upstream-host: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. Navodila za resolver
Sintaksa za resolver je naslednja:
Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default: —
Context: http, server, location Lahko konfigurirate več DNS storitev, nginx bo uporabljal polling za dostop do DNS storitev, nginx bo predpomnil rezultate reševanja DNS domen, čas predpomnilnika je določen kot valid, IPv6 pa se uporablja za prikaz IPv6 vklopa ali izklopa.
resolver_timeout se uporablja za določitev časovne omejitve za ločljivost DNS.
|