Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Mit welchen Methoden implementiert Nginx die Graustufenveröffentlichung?

Mit welchen Methoden implementiert Nginx die Graustufenveröffentlichung?

PHPz
PHPznach vorne
2023-05-19 23:10:052764Durchsuche

Methode 1: Durch Anpassen der Lastausgleichsgewichtung

Der Lastausgleich basiert auf der vorhandenen Netzwerkstruktur. Er bietet eine kostengünstige, effektive und transparente Methode, um die Bandbreite von Netzwerkgeräten und Servern zu erweitern, den Durchsatz zu erhöhen und Netzwerkdaten zu verbessern Verarbeitungskapazitäten, Verbesserung der Netzwerkflexibilität und -verfügbarkeit.

                    Lastausgleich, der englische Name ist Lastausgleich, was bedeutet, die Ausführung mehreren Betriebseinheiten wie Webservern, FTP-Servern, Unternehmensschlüsselanwendungsservern und anderen geschäftskritischen Servern usw. zuzuweisen, um die Arbeit abzuschließen Aufgaben zusammen.

Mit welchen Methoden implementiert Nginx die Graustufenveröffentlichung?

Die einfache Konfiguration lautet wie folgt:

http { 
  upstream cluster { 
    ip_hash; #如果你的系统中没有使用第三方缓存管理工具 ,建议使用此方式
    server 192.168.1.210:80 weight=5; 
    server 192.168.1.211:80 weight=3; 
    server 192.168.1.212:80 weight=1; 
  } 
  
  server { 
    listen 80; 
 
  location / { 
  
  proxy_next_upstream   error timeout;
  proxy_redirect     off;
  proxy_set_header    host $host;
  #proxy_set_header    x-real-ip $remote_addr;
  proxy_set_header    x-real-ip $http_x_forwarded_for;
  proxy_set_header    x-forwarded-for $proxy_add_x_forwarded_for;
  client_max_body_size  100m;
  client_body_buffer_size 256k;
  proxy_connect_timeout  180;
  proxy_send_timeout   180;
  proxy_read_timeout   180;
  proxy_buffer_size    8k;
  proxy_buffers      8 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;
  proxy_pass http://cluster; 
    } 
  } 
}

Diese Methode der Graustufenveröffentlichung wird durch Gewichtung implementiert, diese Methode eignet sich jedoch nur zum Ändern des Verhaltens von Knoten und erfordert, dass die Anwendungen genau gleich sind Der Effekt besteht darin, dass der Knoten zunimmt oder nach dem Löschen das ultimative Ziel der Anpassung der Lastkapazität darin besteht, den Verkehr ausgeglichen zu halten.

Methode 2. Verwenden Sie Nginx + Lua, um die Graustufenveröffentlichung von Webprojekten zu implementieren Ich muss viel über die Lua-Syntax lernen.

Methode 3. Verwenden Sie http-Header-Informationen zur Beurteilung + Gewichtung (Graustufenwert).

Während des HTTP-Anforderungsübertragungsprozesses werden Benutzeragenten, Host, Referrer, Cookies und andere Informationen automatisch übermittelt. Wir müssen lediglich das IP-Adresssegment, den Benutzeragenten, Informationen in Cookies usw. ermitteln. Als Beispiel nehmen wir hier Cookies.

Natürlich müssen hier zwei Probleme gelöst werden:

① Der erste Besuch einer statischen Seite generiert möglicherweise kein Cookie

② Wir müssen die Route dynamisch durch Code festlegen

③ Kontrollieren Sie den Graustufenwert durch Gewicht

Wir können dazu ein Beispiel verwenden, um die oben genannten Probleme ② und ③ zu lösen um Cookies in cookieinfo.php

location / {
 content_by_lua '
      myip = ngx.req.get_headers()["x-real-ip"]
      if myip == nil then
        myip = ngx.req.get_headers()["x_forwarded_for"]
      end
      if myip == nil then
        myip = ngx.var.remote_addr
      end
      if myip == "公司出口ip" then
        ngx.exec("@client")
      else
        ngx.exec("@client_test")
      end
    ';
} 

location @client{
  proxy_next_upstream   error timeout;
  proxy_redirect     off;
  proxy_set_header    host $host;
  #proxy_set_header    x-real-ip $remote_addr;
  proxy_set_header    x-real-ip $http_x_forwarded_for;
  proxy_set_header    x-forwarded-for $proxy_add_x_forwarded_for;
  client_max_body_size  100m;
  client_body_buffer_size 256k;
  proxy_connect_timeout  180;
  proxy_send_timeout   180;
  proxy_read_timeout   180;
  proxy_buffer_size    8k;
  proxy_buffers      8 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;
  proxy_pass http://client;

}
location @client_test{
  proxy_next_upstream   error timeout;
  proxy_redirect     off;
  proxy_set_header    host $host;
  #proxy_set_header    x-real-ip $remote_addr;
  proxy_set_header    x-real-ip $http_x_forwarded_for;
  proxy_set_header    x-forwarded-for $proxy_add_x_forwarded_for;
  client_max_body_size  100m;
  client_body_buffer_size 256k;
  proxy_connect_timeout  180;
  proxy_send_timeout   180;
  proxy_read_timeout   180;
  proxy_buffer_size    8k;
  proxy_buffers      8 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;
  proxy_pass http://client_test;
}
zu ermitteln und zu generieren

Das obige ist der detaillierte Inhalt vonMit welchen Methoden implementiert Nginx die Graustufenveröffentlichung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen