1. Projektumgebung 8 Centos7/8-Server, Nginx 1.21.1, ab, NFS4, 2. ProjektbeschreibungErstellen Sie ein 4/7-Layer-Load-Balancing-Webclusterprojekt auf Basis von Nginx Simulieren Sie die Geschäftsumgebung eines Unternehmens, um einen Webcluster mit hoher Parallelität und Verfügbarkeit aufzubauen. Testen Sie mit Stresstests die Leistung des gesamten Clusters, identifizieren Sie Engpässe und führen Sie kontinuierliche Optimierungen durch. 3. Projektschritte1. InstallationInstallieren und Bereitstellen von Ansible-Diensten, Einrichten eines kennwortfreien Kanals mit anderen Servern und Schreiben eines Playbooks zum Installieren und Bereitstellen von Nginx und Zabbix 2. KonfigurationStellen Sie Nginx und Zabbix über Ansible bereit, konfigurieren Sie die lange Nginx-Verbindung, die Anzahl der Parallelitäten, die Anzahl der Arbeitsprozesse, die Geschwindigkeitsbegrenzung und die zugehörige Konfiguration von Zabbix, laden Sie Website-Inhalte hoch (erstellen Sie ein WordPress-Blogsystem oder eine Website mit Flask-Schnittstelle usw.). 3. Lastenausgleich implementierenVerwenden Sie zwei Server als Dual-VIP-Load Balancer, verwenden Sie die 4/7-Layer-Load Balancing-Funktion von nginx und verwenden Sie den gewichteten Round-Robin-Planungsalgorithmus 4. Erstellen Sie den ServerErstellen Sie einen NFS-Server, um die Datenkonsistenz der Website sicherzustellen, und richten Sie den Backend-Realserver/Backend-Server so ein, dass er beim Booten automatisch gemountet wird. 5. StresstestsVerwenden Sie die AB-Software, um Stresstests auf dem Client durchzuführen 6. ÜberwachungFügen Sie relevante Server und Überwachungselemente auf der Zabbix/Prometheus-Überwachungsplattform hinzu, um die Leistung des gesamten Webclusters zu überwachen - „Zabbi 7. Hohe VerfügbarkeitVerwenden Sie Keepalived-Software, um den Load Balancer hochverfügbar zu machen und einen einzelnen Ausfallpunkt zu verhindern – „Keepalived“ 8. DomänennamenauflösungErstellen Sie einen DNS-Server, um die Domänennamenauflösung für den gesamten Webcluster durchzuführen. Binden Sie durch Lastenausgleich der DNS-Domänennamenauflösung zwei VIPs für den Benutzerzugriff an einen Domänennamen und importieren Sie so den Datenverkehr in verschiedene Lastenausgleichsmodule. 9. Leistung verbessernVersuchen Sie, den gesamten Webcluster zu optimieren, um die Leistung zu verbessern: Optimieren Sie Kernelparameter, Nginx-Parameter, erwägen Sie das Hinzufügen eines Caches und anderer Maßnahmen 10. Verwenden Sie Ansible zum Schreiben von PlaybooksVersuchen Sie, mit Ansible Playbooks zum Installieren aller Software zu schreiben: nginx, zabbix, keepalived, ab, nfs usw. IV. Projektzusammenfassung 1. Verstehen Sie nach und nach das Konzept des Clusters, von 1 bis zu mehreren 5. Hinweise zum Erstellen einer Website1. Website-Inhalte, die Sie bestimmen müssen: Blog, Schnittstellenwebsite, Testseite usw. Probleme mit der Datenkonsistenz: NFS, SAN, Cloud-Speicher, NAS usw. 2. Optimierung der Kernel-Parameter: [root@docker ~]# sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 net.ipv4.conf.all.promote_secondaries = 1 net.ipv4.conf.default.promote_secondaries = 1 net.ipv6.neigh.default.gc_thresh3 = 4096 net.ipv4.neigh.default.gc_thresh3 = 4096 kernel.softlockup_panic = 1 net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0 kernel.shmmax = 68719476736 kernel.printk = 5 kernel.sysrq = 1 kernel.numa_balancing = 0 [root@docker ~]# ulimit unbegrenzt [root@docker ~]# ulimit -a Kerndateigröße (Blöcke, -c) unbegrenzt Datensegmentgröße (KB, -d) unbegrenzt Planungspriorität (-e) 0 Dateigröße (Blöcke, -f) unbegrenzt ausstehende Signale (-i) 14826 maximal gesperrter Speicher (KB, -l) 64 maximale Speichergröße (kByte, -m) unbegrenzt Dateien öffnen (-n) 100001 Pipe-Größe (512 Bytes, -p) 8 POSIX-Nachrichtenwarteschlangen (Bytes, -q) 819200 Echtzeitpriorität (-r) 0 Stapelgröße (KB, -s) 8192 CPU-Zeit (Sekunden, -t) unbegrenzt Maximale Benutzerprozesse (-u) 14826 virtueller Speicher (kByte, -v) unbegrenzt Dateisperren (-x) unbegrenzt [root@docker ~] ab -c 2000 -n 100000 http://192.168.0.92/ Dies ist das Ende dieses Artikels zum Erstellen eines Webclusterprojekts auf Basis von nginx. Weitere relevante Inhalte zu nginx-Webclusterprojekten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Lösung für das Problem des Springens der Textposition, wenn das Suchtextfeld den Fokus verlässt
>>: CSS Lieferadresse Parallelogramm Linienstil Beispielcode
CSS-Vars-Ponyfill Bei der Verwendung von CSS-Vari...
Inhaltsverzeichnis 1. Bilder 1. Was ist ein Spieg...
Detaillierte Erklärung der MySQL-Anzahl Die Funkt...
Das Aufkommen von jQuery hat unsere Effizienz bei...
Heute haben wir ein weiteres typisches Problem im...
Inhaltsverzeichnis Über Trigger Verwendung von Tr...
1. Überprüfen Sie den Firewall-Status Überprüfen ...
Inhaltsverzeichnis Schritt 1: Installation Schrit...
Als ich zum ersten Mal mit HTML in Berührung kam,...
Einführung: Wenn wir MySQL zum Erstellen einer Ta...
Hexo bindet einen benutzerdefinierten Domänenname...
Inhaltsverzeichnis Was ist React Fiber? Warum Rea...
Überwachungsmethode in Vue betrachten Beachten Na...
Inhaltsverzeichnis 1. Installation 2. Ins Projekt...
Installationsumgebung Centos Umgebungsabhängigkei...