Heim  >  Artikel  >  Backend-Entwicklung  >  Es gibt mehrere Möglichkeiten, einen dynamischen DNS-Reverse-Proxy für Nginx zu schreiben

Es gibt mehrere Möglichkeiten, einen dynamischen DNS-Reverse-Proxy für Nginx zu schreiben

不言
不言Original
2018-05-09 10:37:042119Durchsuche

In diesem Artikel werden hauptsächlich verschiedene Möglichkeiten zum Schreiben des dynamischen DNS-Reverse-Proxys von Nginx im Detail vorgestellt. Freunde, die ihn benötigen, können sich darauf beziehen

Die Aktualisierung dieses Artikels hat sich um einen halben Monat verzögert und hat China wirklich bewegt.

Nginx speichert standardmäßig DNS zwischen, wenn Sie einen Reverse-Proxy verwenden, ist es tatsächlich die Ziel-IP, auf die Sie zugreifen. Sobald die Ziel-IP zwischengespeichert ist, wird es also sehr problematisch.

Die vier Schreibweisen des Wortes Fenchel sind weithin bekannt. Ich hätte nie erwartet, dass der dynamische DNS-Reverse-Proxy auch N-Spielarten hat. Das hängt natürlich hauptsächlich von der Nginx-Version ab Der Betrieb und die Wartung haben mir gesagt, dass es am besten ist, kein dynamisches DNS zu verwenden, aber basierend auf den Geschäftsanforderungen haben wir keine andere Wahl.

Die erste Art, das Wort Fenchel zu schreiben: Nginx

In Nginx können Sie das Land durch das Festlegen von Variablen speichern. Es gibt keine Der Weg zum Lastausgleich durch die variable Methode ist natürlich sehr mühsam, wenn Sie nur eine einzige Maschine haben (in tatsächlichen Geschäftsszenarien fast nicht vorhanden), können Sie es trotzdem versuchen:

server {
  ...
  resolver 127.0.0.1;
  set $backend "http://dynamic.example.com:80";
  proxy_pass $backend;
  ...
}

Zweite A-Schreibweise: Nginx Plus

Natürlich ist Nginx nicht sehr einfach zu bedienen. Die erweiterte Version von Plus bietet eine bessere Schreibweise, die das Schreiben im Server unterstützt:

server {
  ...
  resolver 127.0.0.1 valid=30s;
  proxy_pass http://upstream-sites;
  ...
}

Die dritte Schreibweise: Tengine

Tengine ist Taobaos modifiziertes Nginx. Tatsächlich war ich ziemlich verärgert, weil ich zunächst nicht wusste, dass wir Tengine verwenden, daher ist die Konfiguration nutzlos, aber Tengine unterstützt die dynamische Domänennamenauflösung sehr gut, und die offizielle Dokumentation ist es auch auch sehr klar.

upstream backend {
  dynamic_resolve fallback=stale fail_timeout=30s;
  server a.com;
  server b.com;
}
server {
  ...
  location / {
    proxy_pass http://backend;
  }
}

Andere

Natürlich können Sie zur Implementierung auch Lua-Skripte oder Module anderer Leute verwenden. Aber bedenken Sie, dass ich Angst davor hatte, Ärger zu machen, also beschloss ich, mich nicht damit herumzuschlagen, also habe ich diesen Plan nicht übernommen.

Das Obige ist der gesamte Inhalt dieses Artikels. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Nginx-Reverse-Proxy-Websocket-Konfigurationsbeispiel

Das obige ist der detaillierte Inhalt vonEs gibt mehrere Möglichkeiten, einen dynamischen DNS-Reverse-Proxy für Nginx zu schreiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn