Heim > Artikel > Betrieb und Instandhaltung > Mit welchen Methoden implementiert Nginx die Graustufenveröffentlichung?
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.
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 GewichtWir 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!