Es gibt viele Möglichkeiten, den Nginx-Lastausgleich zu konfigurieren. Hier stelle ich Ihnen zwei Möglichkeiten vor, den Nginx-Lastausgleich zu konfigurieren.
nginx fungiert als Reverse-Proxy für Back-End-Webserver (Apache, Nginx, Tomcat, Weblogic) usw.
Mehrere Back-End-Webserver müssen Dateifreigabe und Datenbankfreigabe berücksichtigen , und Probleme bei der Sitzungsfreigabe können NFS, gemeinsam genutzten Speicher (FC, IP-Speicher ist akzeptabel) + Redhat GFS-Clusterdateisystem, Rsync + Inotify-Dateisynchronisierung usw. verwenden. Kleinere Cluster verwenden mehr NFS für Content-Management-Systeme. Eine einzelne Einheit wird zum Veröffentlichen von Informationen verwendet. Rsync+inotify ist eine gute Wahl, um mehrere Maschinen zu synchronisieren
Kleiner Cluster, einzelne Hochleistungsdatenbank (z. B. Zhiqiang Dual Quad-Core, 32/64/). Für große Cluster sollten Sie einen Datenbankcluster in Betracht ziehen. Sie können die offizielle Cluster-Software von MySQL verwenden oder keepalived+lvs verwenden, um Lese- und Schreibvorgänge zu trennen und einen MySQL-Cluster zu erstellen.
Das Problem der Sitzungsfreigabe ist ein großes Problem. Wenn Nginx ip_hash verwendet, wird jede IP innerhalb eines bestimmten Zeitraums einem festen Back-End-Server zugewiesen, sodass wir dies nicht tun müssen Lösen Sie das Problem der Sitzungsfreigabe. Im Gegensatz dazu werden
Anfragen nach einer IP abgefragt und an mehrere Server verteilt, die gelöst werden müssen. Bei Problemen mit der Sitzungsfreigabe können Sie NFS verwenden, um die Sitzung freizugeben, und die Sitzung in MySQL oder Memcache schreiben usw. Wenn der Maschinenumfang relativ groß ist
, verwenden Sie im Allgemeinen die Methode zum Schreiben der Sitzung in den Memcache.
Back-End-Webserver Wir werden hier nicht diskutieren, wie er konfiguriert wird Der Server kann Apache, Nginx, Tomcat, Lighthttp usw. sein. Dem Front-End ist es egal, was das Back-End ist.
Erstellen Sie zunächst eine Proxy.conf-Datei, um unseren späteren Aufruf zu erleichtern (Konfiguration). Wenn mehrere Cluster vorhanden sind, Es ist eine gute Methode, die öffentlichen Parameter in eine Datei zu schreiben und sie dann weiter einzubinden)
vi /usr/local/nginx/conf/proxy.conf
proxy_redirect off;
proxy_set_header Host $host ;
proxy_set_header Lastausgleichsmethoden von Nginx hier: Polling-Gewichtung (kann auch ungewichtet sein, also 1:1 Last) und ip_hash (Die gleiche IP wird einem festen Back-End-Server zugewiesen, um das Sitzungsproblem zu lösen)
Wir können diese Konfigurationsdatei hineinschreiben nginx.conf (wenn es nur einen Webcluster gibt, ist es am besten, „Gehe zu vhosts“ in Form eines virtuellen Hosts zu schreiben, hier schreibe ich es in nginx.conf
Der erste Konfiguration: Gewichtete Abfrage, Gewichtung entsprechend der Leistung des Servers, dieses Beispiel ist eine 1:2-Zuteilung
upstream lb { server 192.168.196.130 weight=1 fail_timeout=20s; server 192.168.196.132 weight=2 fail_timeout=20s; } server { listen 80; server_name safexjt.com www.safexjt.com; index index.html index.htm index.php; location / { proxy_pass http://lb; proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; include proxy.conf; } }
upstream lb { server 192.168.196.130 fail_timeout=20s; server 192.168.196.132 fail_timeout=20s; ip_hash; } server { listen 80; server_name safexjt.com www.safexjt.com; index index.html index.htm index.php; location / { proxy_pass http://lb; proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; include proxy.conf; } }
upstream backserver { server 192.168.0.14; server 192.168.0.15; }
2. Geben Sie die Gewichtung an.
Geben Sie die Abfragewahrscheinlichkeit an. Die Gewichtung ist proportional zum Zugriffsverhältnis und wird verwendet, wenn die Back-End-Serverleistung ungleichmäßig ist.
upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; }
3. IP-Bindung ip_hash
Jede Anfrage wird entsprechend dem Hash-Ergebnis der abgerufenen IP zugewiesen, sodass jeder Besucher festen Zugriff auf einen Back-End-Server hat, der das lösen kann Sitzungsproblem.upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
upstream backserver { server server1; server server2; fair; }
upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }
proxy_pass http://backserver/; upstream backserver{ ip_hash; server 127.0.0.1:9090 down; (down 表示单前的server暂时不参与负载) server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大) server 127.0.0.1:6060; server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器) }
Verwandte Empfehlungen:
php-Interviewfrage 7: So konfigurieren Sie den Nginx-Lastausgleich
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich den Nginx-Lastausgleich? Konfigurationsmethode für den Nginx-Lastausgleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!