Heim > Artikel > Betrieb und Instandhaltung > Website-Load-Balancing-Lösung
Einfach ausgedrückt besteht der Web-Lastausgleich (Load Balancing) darin, unserem Servercluster „Arbeitsaufgaben“ zuzuweisen. Die Verwendung geeigneter Zuweisungsmethoden ist für den Schutz der Back-End-Webserver sehr wichtig.
Reverse-Proxy-Lastausgleich
Die Kernaufgabe des Reverse-Proxy-Dienstes besteht hauptsächlich darin, HTTP-Anfragen weiterzuleiten und dabei die Rolle zu spielen der Browser und die Rolle des Backend-Webserver-Relays. Da es auf der HTTP-Schicht (Anwendungsschicht) arbeitet, die die siebte Schicht in der siebenschichtigen Netzwerkstruktur ist, wird es auch als „siebenschichtiger Lastausgleich“ bezeichnet. Es gibt viele Softwareprogramme, die als Reverse-Proxy verwendet werden können, und eine der gebräuchlichsten ist Nginx.
Nginx ist eine sehr flexible Reverse-Proxy-Software, die Weiterleitungsstrategien frei anpassen, das Gewicht des Serververkehrs zuweisen usw. kann. Ein häufiges Problem beim Reverse-Proxy sind die vom Webserver gespeicherten Sitzungsdaten, da die allgemeine Lastausgleichsstrategie Anforderungen zufällig zuweist. Es gibt keine Garantie dafür, dass Anfragen desselben angemeldeten Benutzers derselben Webmaschine zugeordnet werden, was dazu führen kann, dass die Sitzung nicht gefunden wird.
Es gibt zwei Hauptlösungen:
Konfigurieren Sie die Weiterleitungsregeln des Reverse-Proxys so, dass Anfragen desselben Benutzers auf denselben Computer fallen müssen (durch Analyse von Cookies). , komplexe Weiterleitungsregeln verbrauchen mehr CPU und erhöhen die Belastung des Proxyservers.
Es wird empfohlen, einen unabhängigen Dienst zum Speichern von Informationen wie Sitzungen zu verwenden, z. B. Redis/Memchache.
Der Reverse-Proxy-Dienst kann auch Caching aktivieren. Wenn er aktiviert ist, erhöht er die Belastung des Reverse-Proxys und muss mit Vorsicht verwendet werden. Diese Lastausgleichsstrategie ist sehr einfach zu implementieren und bereitzustellen und weist eine relativ gute Leistung auf. Es besteht jedoch das Problem eines „Single Point of Failure“. Wenn es hängt, verursacht es große Probleme. Darüber hinaus kann es zu einem Flaschenhals des Systems werden, wenn die Anzahl der Webserver in späteren Phasen weiter zunimmt.
Profilbeispiel:
#user nobody; worker_processes 1; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream www.hcoder.net { server 192.168.1.188:80 weight=5; server 192.168.1.158:80; } server { listen 80; server_name www.hcoder.net; location / { proxy_pass http://www.hcoder.net; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Das obige ist der detaillierte Inhalt vonWebsite-Load-Balancing-Lösung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!