Nesen manā darbā ir bijis nepieciešams šis aspekts, augšupējais ir pilnīgi dinamisks, ko norādījis klients, sākumā ir dažas kļūdas, un, visbeidzot, DNS pakalpojums tiek norādīts, izmantojot risinātāju, konkrētais process ir šāds.
1. Sāciet kāpt uz bedres
Nginx konfigurācija ir šāda:
Kad es nosūtu šāda veida pieprasījumu:
Tika ziņots par šādu kļūdu:
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 [Kļūda] 25307#25307: *48 Nav definēts atrisinātājswww.baidu.com, klients: 127.0.0.1, serveris: localhost, pieprasījums: "GET / HTTP/1.1", resursdators: "127.0.0.1:8001" Ir skaidrs, ka šī problēma norāda, ka risinātāja nenorādīšana izraisa pielāgotus upstreamwww.baidu.com.
2. Izmantojiet Resolver, lai definētu domēna nosaukuma izšķirtspēju
Modificētā nginx konfigurācija ir šāda:
Tagad pieprasījumi ir normāli 200:
req: curl "127.0.0.1:8001/" -H "augšup-saimnieks:www.baidu.com" -voa curl "127.0.0.1:8001/" -H "augšup-saimnieks: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. Norādījumi par risinātāju
Resolver sintakse ir šāda:
Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default: —
Context: http, server, location Jūs varat konfigurēt vairākus DNS pakalpojumus, nginx izmantos aptauju, lai piekļūtu DNS pakalpojumiem, nginx kešatmiņā saglabās DNS domēna nosaukuma izšķirtspējas rezultātus, kešatmiņas laiks ir norādīts ar derīgu, un IPv6 tiek izmantots, lai parādītu IPv6 ieslēgtu vai izslēgtu.
resolver_timeout tiek izmantots, lai norādītu DNS izšķirtspējas taimautu.
|