Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 9418|Antwoord: 0

[Web] Implementeer dynamische upstreams met behulp van de resolver van Nginx

[Link kopiëren]
Geplaatst op 27-07-2019 22:23:00 | | |
Onlangs is er behoefte aan dit aspect in mijn werk: upstream is volledig dynamisch, wordt door de client gespecificeerd, er zijn wat fouten aan het begin, en uiteindelijk wordt de DNS-service via de resolver gespecificeerd; het specifieke proces is als volgt.

1. Begin met het betreden van de put

De configuratie van nginx is als volgt:

Wanneer ik dit soort verzoek stuur:


De volgende fout werd gemeld:

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 [fout] 25307#25307: *48 geen resolver gedefinieerd om op te lossenwww.baidu.com, client: 127.0.0.1, server: localhost, verzoek: "GET / HTTP/1.1", host: "127.0.0.1:8001"
Het is duidelijk dat dit probleem stelt dat het niet specificeren van een resolver leidt tot aangepaste upstreamwww.baidu.com.

2. Gebruik Resolver om domeinnaamresolutie te definiëren

De aangepaste nginx-configuratie is als volgt:

Nu zijn de verzoeken normaal 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. Resolver-instructies

De syntaxis voor resolver is als volgt:

Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default:    —
Context:    http, server, location
Je kunt meerdere DNS-diensten configureren: nginx gebruikt polling om toegang te krijgen tot DNS-services, nginx cachet de resultaten van DNS-domeinnaamresolutie, de cachetijd wordt gespecificeerd op valid, en IPv6 wordt gebruikt om IPv6 aan of uit te geven.

resolver_timeout wordt gebruikt om de timeout voor DNS-resolutie aan te geven.





Vorig:Deel een persoonlijke FTP-bouwsoftware
Volgend:Alibaba Cloud OSS Nginx reverse proxy configuratie
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com