Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9418|Antwort: 0

[Web] Implementiere dynamische Upstreams mit Nginx' Resolver

[Link kopieren]
Veröffentlicht am 27.07.2019 22:23:00 | | |
In letzter Zeit besteht in meiner Arbeit ein Bedarf an diesem Aspekt: Upstream ist komplett dynamisch, vom Client angegeben, es gibt einige Fehler am Anfang, und schließlich wird der DNS-Dienst über den Resolver angegeben, der spezifische Prozess ist wie folgt.

1. Fang an, in die Grube zu treten

Die Konfiguration von nginx ist wie folgt:

Wenn ich diese Art von Anfrage schicke:


Folgender Fehler wurde gemeldet:

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 [Fehler] 25307#25307: *48 kein Resolver definiert zum Auflösenwww.baidu.com, Client: 127.0.0.1, Server: localhost, Anfrage: "GET / HTTP/1.1", Host: "127.0.0.1:8001"
Es ist klar, dass dieses Problem besagt, dass das Fehlen eines Resolvers benutzerdefinierte upstreamwww.baidu.com verursacht.

2. Verwenden Sie Resolver zur Definition der Domain-Namen-Resolution

Die modifizierte nginx-Konfiguration ist wie folgt:

Jetzt sind die Anfragen normal: 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-Anweisungen

Die Syntax des Resolvers ist wie folgt:

Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default:    —
Context:    http, server, location
Man kann mehrere DNS-Dienste konfigurieren: nginx nutzt Abfragen, um auf DNS-Dienste zuzugreifen, nginx speichert die Ergebnisse der DNS-Domain-Namen-Auflösung, die Cache-Zeit ist als gültig angegeben, und IPv6 wird verwendet, um IPv6 ein- oder ausgeschaltet anzuzeigen.

resolver_timeout wird verwendet, um das Timeout für die DNS-Auflösung festzulegen.





Vorhergehend:Teilen Sie eine persönliche FTP-Bausoftware
Nächster:Alibaba Cloud OSS Nginx Reverse Proxy Konfiguration
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com