Heim Backend-Entwicklung PHP-Tutorial Centos Nginx konfiguriert den Lastausgleich von Grund auf

Centos Nginx konfiguriert den Lastausgleich von Grund auf

Aug 08, 2016 am 09:30 AM
com nbsp nginx

Verständnis des Nginx-Lastausgleichs

nginx ist ein leichter, leistungsstarker Webserver. Er kann hauptsächlich die folgenden zwei Dinge tun:

  • Als http-Server (gleicher Effekt wie Apache)
  • Lastausgleich als Reverse-Proxy-Server erreichen

Heutzutage ist Nginx überall zu sehen. Es ist oft zu sehen, dass die Wörter Nginx nach einer Ausfallzeit auf der Webseite angezeigt werden. Dies zeigt auch, dass Nginx aufgrund seiner hohen Leistung und einfachen Bedienung immer mehr verwendet wird Konfiguration und Open Source akzeptiert, verwendet.

Der erste fungiert in Kombination mit dem PHP-FPM-Prozess als Server, um eingehende Anfragen zu verarbeiten. Er fungiert lediglich als Server, um Anfragen vom Client anzunehmen Die Anfrage wird zur Verarbeitung an den PHP-Prozess übergeben und das Ergebnis nach Abschluss der PHP-Verarbeitung an den Client gesendet. Dies ist sehr einfach. Konfigurieren Sie nach der Installation von nginx php-fpm die entsprechenden Konfigurationsdateien und starten Sie es. Das Funktionsprinzip ist in der folgenden Erklärung ersichtlich:

Nginx unterstützt kein direktes Aufrufen oder Parsen externer Programme. Alle externen Programme (einschließlich PHP) müssen über die FastCGI-Schnittstelle aufgerufen werden. Die FastCGI-Schnittstelle ist ein Socket unter Linux (dieser Socket kann ein Datei-Socket oder ein IP-Socket sein). Um ein CGI-Programm aufzurufen, wird außerdem ein FastCGI-Wrapper benötigt (ein Wrapper kann als ein Programm verstanden werden, das zum Starten eines anderen Programms verwendet wird). Dieser Wrapper ist an einen festen Socket gebunden, beispielsweise einen Port oder einen Datei-Socket. Wenn Nginx eine CGI-Anfrage an diesen Socket sendet, empfängt der Wrapper die Anfrage über die FastCGI-Schnittstelle und erzeugt dann einen neuen Thread. Dieser Thread ruft den Interpreter oder ein externes Programm auf, um das Skript zu verarbeiten und dann die Rückgabedaten zu lesen Die zurückgegebenen Daten werden über den festen Socket über die FastCGI-Schnittstelle an Nginx weitergeleitet. Schließlich sendet Nginx die zurückgegebenen Daten an den Client. Dies ist der gesamte Betriebsprozess von Nginx FastCGI, wie in der folgenden Abbildung dargestellt.

Der obige Absatz erläutert den Funktionsmechanismus von Nginx Fastcgi. Die Anforderung wird in der Nginx-Konfigurationsdatei abgeglichen und entsprechend verarbeitet, z. B. durch direktes Zurückgeben der Fehlerdatei (es gibt einen kleinen Unterschied zwischen diesem und dem oben Gesagten). Schätzungen zufolge kann Nginx statische Dateien wie HTML intern analysieren (ähnlich wie im Bild oben) und den PHP-Prozess verwenden, um PHP-Anfragen zu verarbeiten (hier kann es mehrere PHP-Prozesse geben).

Die zweite Möglichkeit besteht darin, den Reverse-Proxy-Lastausgleich zu verwenden. Vereinfacht ausgedrückt definieren Sie eine Gruppe von Servern, gleichen die Anforderungen ab und übertragen die Anforderungen zur Verarbeitung an einen der Server Um Druck auf jeden Server auszuüben, werfen Sie zunächst einen Blick auf die Definition von Reverse Proxy online:

Die Reverse-Proxy-Methode bezieht sich auf die Verwendung eines Proxyservers, um Verbindungsanfragen im Internet anzunehmen, die Anfragen dann an den Server im internen Netzwerk weiterzuleiten und die vom Server erhaltenen Ergebnisse an die Person zurückzugeben, die die Verbindung im Internet anfordert .Client, zu diesem Zeitpunkt erscheint der Proxyserver nach außen als Reverse-Proxyserver.

Reverse-Proxy ist das Gegenteil von Forward-Proxy (oder Proxy). Um bequemer auf Ressource B zuzugreifen, wird auf Ressource B indirekt über Ressource A zugegriffen. Das Merkmal ist, dass Benutzer es wissen Was ist die endgültige Website, die besucht werden soll? Reverse-Proxy-Benutzer wissen jedoch nicht, welche Verarbeitung hinter dem Proxy-Server erfolgt. Der eigentliche Verarbeitungsserver des Reverse-Proxy-Dienstes befindet sich im Intranet, und nur auf den Reverse-Proxy-Server kann zugegriffen werden aus dem externen Netzwerk, was auch die Sicherheit erheblich verbessert.

Software installieren

Die Nginx-Installation ist sehr einfach

1. Die Umgebung, die zum Installieren von Nginx, PCRE (zum Umschreiben), Zlib (zur Komprimierung) und SSL erforderlich ist. Sie können diese auch selbst herunterladen, kompilieren und installieren

yum -y install zlib;

yum –y installiere pcre;

yum –y install openssl;

2. Laden Sie nginx-*.tar.gz herunter und installieren Sie es.

tar –zxvf nginx-1.2.8.tar.gz –C ./;

cd nginx-1.2.8;

./congigure --prefix=/usr/local/nginx;

make && make install;

3. Konfiguration

Bei der Konfiguration müssen Sie nur den Inhalt zwischen http{} ändern. Der erste Ort zum Ändern besteht darin, die Servergruppe einzurichten und

zwischen den http-Knoten hinzuzufügen.

upstream myServer{
server www.myapp2.com:80; #Hier ist die Serveradresse für den Lastausgleich 1
server www.myapp1.com:8080; #Hier ist die Serveradresse für die Lastverteilung Ausgleichsadresse 2
}

Upstream in Nginx unterstützt die folgenden Methoden: Polling (standardmäßig wird auf alle Server nacheinander in chronologischer Reihenfolge zugegriffen. Wenn ein Server ausfällt, wird er automatisch eliminiert), Gewichtung (die Standortwahrscheinlichkeit des Servers ist proportional entsprechend der Gewichtung), dies kann konfiguriert werden, wenn die Serverkonfiguration ungleichmäßig ist), ip_hash (Hash-Berechnung wird für jede angeforderte IP durchgeführt und der entsprechende Server wird nach bestimmten Regeln zugewiesen), fair (gemäß der Antwortzeit (rt) jedes Servers) Anforderungen verteilen, rt kennt die Prioritätsverteilung), url_hash (Anforderungen gemäß dem Hash-Wert der Zugriffs-URL verteilen), ich verwende hier die Standardrotationsmethode.

Direkte Anfragen an myServer

Standort / {
Proxy_Pass http://myServer;
}

Die vollständige Datei (Kommentare entfernt) lautet wie folgt:

worker_processes  <span>1</span><span>;
events {
    worker_connections  </span><span>1024</span><span>;
}
http {
    include       mime.types;
    default_type  application</span>/octet-<span>stream;
    sendfile        on;
    keepalive_timeout  </span><span>65</span><span>;
    upstream myServer{
       server www.myapp1.com:</span><span>80</span><span>;
       server www.myapp2.com:</span><span>8080</span><span>;
    }
    server {
        listen       </span><span>80</span><span>;
        server_name  my22;
        location </span>/<span> {
            proxy_pass   http:</span><span>//</span><span>myServer;</span>
<span>        }
    }
}</span>
Nach dem Login kopieren

Richten Sie ein Reverse-Proxy-Backend als Load Balancer zwischen den beiden Servern ein

Sie können sehen, dass es im vorherigen Schritt zwei Serveradressen gibt, www.myapp1.com:80 und www.myapp2.com:8080. Ich habe den oben genannten Nginx auf der virtuellen Maschine installiert Im lokalen Win8-System werden mithilfe des virtuellen Hosts von Apache zwei Domänennamen eingerichtet. Die Codes unter den beiden Domänennamen sind unabhängig voneinander und die Einstellungen sind ebenfalls sehr einfach:

1. Apache-Konfigurationsdatei festlegen

Ich verwende die integrierte xampp-Umgebung. Es gibt zwei Stellen zum Ändern

zum Abhörport in httpd.conf

8080 anhören

Mit anderen Worten, dieser Ort überwacht zwei Ports

Hören Sie 80
Hören Sie 8080

Überprüfen Sie, ob der Satz unten geöffnet ist. Wenn nicht, öffnen Sie ihn wie unten gezeigt

<span># Virtual hosts
Include conf</span>/extra/httpd-vhosts.conf
Nach dem Login kopieren
Fügen Sie den folgenden Inhalt in httpd-vhosts.conf hinzu,

<VirtualHost *:<span>80</span>><span>
    ServerName www.myapp1.com #对应的域名,负载均衡的服务器地址
    DocumentRoot E:\soft\xampp\htdocs\www.myapp1.com #代码文件夹
</span></VirtualHost>
<VirtualHost *:<span>8080</span>><span>
    ServerName www.myapp2.com
    DocumentRoot E:\soft\xampp\htdocs\www.myapp2.com
</span></VirtualHost>
Nach dem Login kopieren
Ändern Sie die Windows-Hosts-Datei und fügen Sie den folgenden Inhalt hinzu

<span>127.0</span>.<span>0.1</span><span>        www.myapp1.com
</span><span>127.0</span>.<span>0.1</span>        www.myapp2.com
Nach dem Login kopieren
Ändern Sie die Datei /etc/hosts von Linux und fügen Sie den folgenden Inhalt hinzu

<span>192.168</span>.<span>1.12</span><span>        www.myapp1.com #这里前面的地址对应我win8本机的ip地址
</span><span>192.168</span>.<span>1.12</span>        www.myapp2.com
Nach dem Login kopieren
Ich habe eine Datei index.php in www.myapp1.com:80 [E:softxampphtdocswww.myapp1.comindex.php]

eingefügt

Eine Datei index.php wird auch in www.myapp2.com:8080 [E:softxampphtdocswww.myapp2.comindex.php]

abgelegt

Der Inhalt der Datei ist im Grunde derselbe, außer dass ich myapp2 unterschiedlich bin. Einer ist myapp1 und der andere ist myapp2.

Wenn Sie im Win8-Browser www.myapp1.com:80 und www.myapp2.com:8080 eingeben können, sehen Sie verschiedene Effekte

Und wenn Sie unter Centos (von Ihnen selbst verschönert) die folgenden Ergebnisse sehen, bedeutet dies, dass die Konfiguration erfolgreich war

[root@bogon nginx]# curl www.myapp1.com:<span>80</span><span>
I</span><span>'</span><span>m the myapp1<br>【view】1</span>
[root@bogon nginx]# curl www.myapp2.com:<span>8080</span><span>
I</span><span>'</span><span>m the myapp2<br>【view】1</span>
Nach dem Login kopieren

<?<span>php
</span><span>session_save_path</span>("./"<span>);
</span><span>session_start</span><span>();
</span><span>header</span>("Content-type:text/html;charset=utf-8"<span>);
</span><span>if</span>(<span>isset</span>(<span>$_SESSION</span>['view'<span>])){
    </span><span>$_SESSION</span>['view'] = <span>$_SESSION</span>['view'] + 1<span>;
}</span><span>else</span><span>{
    </span><span>$_SESSION</span>['view'] = 1<span>;
}
</span><span>echo</span> "I'm the myapp2<br>"<span>;
</span><span>echo</span> "【view】{<span>$_SESSION</span>['view']}";
Nach dem Login kopieren
Sehen Sie sich die Wirkung an

Nachdem alles in Ordnung ist, können Sie über den Browser darauf zugreifen, um den Effekt zu sehen

Ich habe vergessen zu erwähnen, dass die Adresse des Nginx-Proxyservers http://192.168.1.113 lautet,

Nachdem Sie http://192.168.1.113/index.php in den Browser eingegeben haben, aktualisieren Sie ihn weiter. Sie werden feststellen, dass er sich in

befindet

Ich bin die myapp2、Ich bin die myapp1

Wenn diese beiden Seiten hin und her ausgetauscht werden, wird die Ansicht einmal hinzugefügt, ohne sie zweimal zu aktualisieren. Dies beweist auch, dass die zuvor erwähnte Standardmethode das Rotationstraining ist, aber es gibt hier ein weiteres häufiges Problem Wenn der Benutzer eine Website besucht, wird die Sitzung ohne Verarbeitung auf verschiedenen Servern gespeichert (ich verwende hier zwei verschiedene Ordner, um zwei Server zu simulieren). Es können mehrere Sitzungsdatensätze vorhanden sein. Weiter geht es um dieses Problem , es ist eigentlich ganz einfach.

Das Urheberrecht dieses Artikels liegt beim Autor (luluyrt@163.com). Nach dem Nachdruck des Artikels müssen der Autor und der Originaltext-Link angegeben werden an einer offensichtlichen Stelle auf der Artikelseite, andernfalls behalten wir uns die Geltendmachung gesetzlicher Haftungsrechte vor.

Das Obige stellt vor, wie man den Lastausgleich auf Centos Nginx von Grund auf konfiguriert, einschließlich aller Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So starten Sie Nginx unter Linux So starten Sie Nginx unter Linux Apr 14, 2025 pm 12:51 PM

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

So lösen Sie Nginx403 -Fehler So lösen Sie Nginx403 -Fehler Apr 14, 2025 pm 12:54 PM

Der Server verfügt nicht über die Berechtigung, auf die angeforderte Ressource zuzugreifen, was zu einem NGINX 403 -Fehler führt. Zu den Lösungen gehören: Überprüfung der Dateiberechtigungen. Überprüfen Sie die Konfiguration .htaccess. Überprüfen Sie die Nginx -Konfiguration. Konfigurieren Sie Selinux -Berechtigungen. Überprüfen Sie die Firewall -Regeln. Fehlerbehebung bei anderen Ursachen wie Browserproblemen, Serverausfällen oder anderen möglichen Fehlern.

So konfigurieren Sie Lastausgleich in nginx So konfigurieren Sie Lastausgleich in nginx Apr 14, 2025 am 08:33 AM

Wie konfiguriere ich Nginx für das Lastausgleich? Definiert den Upstream -Serverpool und gibt den Server -IP und den Port an. Definieren Sie virtuelle Hosts, hören Sie nach Verbindungen und leiten Sie sie an den stromaufwärtigen Pool weiter. Geben Sie den Ort an, stimmen Sie die Anfrage an und leiten Sie ihn an den stromaufwärtigen Pool weiter.

So überprüfen Sie den laufenden Status von Nginx So überprüfen Sie den laufenden Status von Nginx Apr 14, 2025 am 11:48 AM

Die Methoden zum Anzeigen des laufenden Status von Nginx sind: Verwenden Sie den Befehl ps, um den Prozessstatus anzuzeigen; Zeigen Sie die nginx -Konfigurationsdatei /etc/nginx/nginx.conf an; Verwenden Sie das Nginx -Statusmodul, um den Statusendpunkt zu aktivieren. Verwenden Sie Überwachungstools wie Prometheus, Zabbix oder Nagios.

So konfigurieren Sie Nginx in Windows So konfigurieren Sie Nginx in Windows Apr 14, 2025 pm 12:57 PM

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

So überprüfen Sie, ob Nginx gestartet wird So überprüfen Sie, ob Nginx gestartet wird Apr 14, 2025 pm 01:03 PM

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

So reinigen Sie das Nginx -Fehlerprotokoll So reinigen Sie das Nginx -Fehlerprotokoll Apr 14, 2025 pm 12:21 PM

Das Fehlerprotokoll befindet sich in/var/log/nginx (Linux) oder/usr/local/var/log/nginx (macOS). Verwenden Sie die Befehlszeile, um die Schritte zu beseitigen: 1. Sicherung des ursprünglichen Protokolls; 2. Erstellen Sie eine leere Datei als neues Protokoll; 3. Starten Sie den Nginx -Dienst neu. Die automatische Reinigung kann auch mit Tools von Drittanbietern wie lehnte oder konfiguriertem verwendet werden.

So lösen Sie Nginx304 Fehler So lösen Sie Nginx304 Fehler Apr 14, 2025 pm 12:45 PM

Antwort auf die Frage: 304 Nicht geänderter Fehler gibt an, dass der Browser die neueste Ressourcenversion der Client -Anfrage zwischengespeichert hat. Lösung: 1. Löschen Sie den Browser -Cache; 2. Deaktivieren Sie den Browser -Cache; 3. Konfigurieren Sie Nginx, um den Client -Cache zu ermöglichen. 4. Überprüfen Sie die Dateiberechtigungen; 5. Datei Hash prüfen; 6. Deaktivieren Sie CDN oder Reverse Proxy -Cache; 7. Starten Sie Nginx neu.

See all articles