Heim > Artikel > Betrieb und Instandhaltung > Nginx-Initialisierungskonfigurationsmethode
Grundlegende Konzepte
nginx wird am häufigsten zur Bereitstellung von Reverse-Proxy-Diensten verwendet. Was ist also ein Reverse-Proxy? Ich glaube, dass viele Landsleute auf dem Festland in diesem magischen Land einen Forward-Proxy verwendet haben. Das Prinzip ist ungefähr wie folgt:
Der Proxyserver fungiert als Vermittler auf der Clientseite, um Anfragen anzunehmen, den echten Kunden zu verbergen und die zu erhalten Anfrage vom Server. Wenn sich der Proxyserver außerhalb der Chinesischen Mauer befindet, kann er uns auch dabei helfen, den Zweck der Überquerung der Chinesischen Mauer zu erreichen. Wie der Name schon sagt, besteht Reverse Proxy darin, den Proxyserver als Vermittler für den Server zu verwenden und den Server zu verbergen, der tatsächlich Dienste bereitstellt. Das Prinzip ist ungefähr wie folgt:
Natürlich dient dies nicht dazu, den Zweck zu erreichen der Überquerung der Chinesischen Mauer, sondern um Sicherheit und Lastausgleich sowie eine Reihe von Funktionen zu erreichen. Die sogenannte Sicherheit bedeutet, dass die Anfrage des Clients nicht direkt an den Intranetserver gelangt, sondern über einen Proxy weitergeleitet wird. Auf dieser Ebene können eine Reihe von Strategien wie Sicherheitsfilterung, Flusskontrolle und DDoS-Prävention implementiert werden. Lastausgleich bedeutet, dass wir die Anzahl der Server, die tatsächlich Dienste im Backend bereitstellen, horizontal erweitern können. Der Agent leitet Anforderungen gemäß den Regeln an jeden Server weiter, sodass die Last jedes Servers nahezu ausgeglichen ist.
Und Nginx ist ein so beliebter Reverse-Proxy-Dienst.
Unter Ubuntu können Sie den Kompilierungs- und Installationsprozess überspringen und direkt apt-get verwenden
Kopieren Sie den Code. Der Code lautet wie folgt:
sudo service nginx start
Zum Starten des Nginx-Dienstes wird standardmäßig Port 80 weitergeleitet. Wir können dies überprüfen, indem wir http://locallhost im Browser aufrufen.
Erstkonfiguration
Code kopieren Der Code lautet wie folgt:
/etc/nginx/nginx.confDer beste Weg, die Konfiguration zu lernen, besteht darin, mit Beispielen zu beginnen. Schauen wir sie uns nicht zuerst an. Weitere Konfigurationen finden Sie direkt in der Konfiguration, die sich auf die Nginx-Standardseite bezieht. In der Konfigurationsdatei gibt es eine Zeile:
Code kopieren Der Code lautet wie folgt:
include /etc/nginx/sites-enabled/*;
Diese Zeile lädt eine externe Konfigurationsdatei und es gibt nur eine Standardeinstellung Unter der Sites-Enabled-Ordnerdatei ist diese externe Konfigurationsdatei für den Standard-Proxy unseres Nginx verantwortlich. Nachdem Sie den Konfigurationsinhalt verkleinert haben, erhalten Sie die folgenden Zeilen:
Code kopieren Der Code lautet wie folgt:
server {
server_name localhost;listen 80 default_server;
listen [::]:80 default_server ipv6only=on;root / usr/share/nginx/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Eine große Website hat normalerweise viele untergeordnete Websites , jeder hat seinen eigenen Server, der entsprechende Dienste bereitstellt, wir können diese verschiedenen Dienstkonfigurationen durch ein Konzept namens virtueller Host isolieren. Dies ist die Bedeutung von Server in der obigen Konfiguration. Beispielsweise verfügt Google über zwei Produkte: „Übersetzung“ und „Akademisch“. Die Servernamen lauten „translate.google.com“ und „scholar.google.com“. an die entsprechenden Einstellungen von nginx und an verschiedene Back-End-Server weiterleiten. Der Servername entspricht hier der Hostzeile in der Client-HTTP-Anfrage.
default_server bedeutet, dass die Konfiguration dieses Servers verwendet wird, wenn andere HTTP-Anforderungshosteinstellungen vorhanden sind, die in Nginx nicht vorhanden sind. Wenn wir beispielsweise auf 127.0.0.1 zugreifen, erfolgt die Verarbeitung ebenfalls auf diesem Server.
Jede URL-Anfrage entspricht einem Dienst, und Nginx verarbeitet sie und leitet sie entweder an einen lokalen Dateipfad oder einen Dienstpfad anderer Server weiter. Der Abgleich dieses Pfades erfolgt über den Standort. Wir können uns einen Server als die Konfiguration vorstellen, die einem Domänennamen entspricht, und einen Standort als die Konfiguration eines detaillierteren Pfads unter einem Domänennamen.
Alle Anfragen, die mit dem Standortabgleich /, also /xxx oder /yyy unter localhost, beginnen, müssen die folgende Konfiguration durchlaufen. Zusätzlich zu diesem einfachen und groben Abgleich unterstützt Nginx auch reguläre, exakte Gleichheits- und andere Feinabgleichsmethoden. Und tryfiles bedeutet, dass Nginx in der folgenden Reihenfolge auf die Dateien zugreift und die erste passende zurückgibt. Wenn Sie beispielsweise „localhost/test“ anfordern, wird nach der Datei „/test“ gesucht. Wenn sie nicht gefunden wird, wird nach „/test/“ gesucht. Darüber hinaus können wir auch Proxypass in der Standortkonfiguration verwenden, um Reverse-Proxy und Lastausgleich zu implementieren, aber diese einfachste Konfiguration beinhaltet nicht
wobei sich root auf die Verwendung eines lokalen Ordners als Root-Pfad für alle URL-Anfragen bezieht. Wenn der Benutzer beispielsweise einen localhost/test anfordert, sucht nginx im Ordner /usr/share/nginx/html nach der Testdatei und gibt sie zurück.
Und index ist die Standardzugriffsseite. Wenn wir auf localhost zugreifen, wird automatisch nach index.html und index.htm im Stammdateipfad gesucht und das erste gefundene Ergebnis zurückgegeben.
Erweiterte Standortkonfiguration
Die obige Konfiguration ordnet die URL des Benutzers nur lokalen Dateien zu und implementiert nicht den legendären Reverse-Proxy und den Lastausgleich (natürlich ist Nginx auch sehr leistungsfähig bei der Verteilung statischer Dateien), wie folgt. Gehen wir weiter Konfigurieren Sie den Standort, um zu sehen, wie Sie ihn implementieren.
Die Konfiguration ist sehr einfach. Wenn ich beispielsweise alle Anfragen an Port 8080 einer Maschine übertragen möchte, die tatsächlich Dienste bereitstellt, gehen Sie einfach wie folgt vor:
Kopieren Sie den Code. Der Code lautet wie folgt:
Standort / {
Proxy_pass 123.34.56.67:8080 ;
}
Auf diese Weise werden alle Anfragen als Reverse-Proxy an 123.34.56.67 weitergeleitet. Auf diese Weise wurde unsere Reverse-Proxy-Funktion implementiert, aber wie kann ein Lastausgleich erfolgen, wenn wir einen Proxy an einen Server senden können? Dies erfordert das Upstream-Modul von Nginx.
Code kopieren Der Code lautet wie folgt:
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
server backend4.example. com ;
}
location / {
Proxy_pass http://backend;
}
Wir haben eine Gruppe von Maschinen im Upstream angegeben und diese Gruppe Backend genannt, sodass wir in Proxypass nur die Anfrage an das Backend-Upstream übertragen müssen . Reverse-Proxy plus Lastausgleich auf vier Maschinen implementiert. Der Iphash zeigt an, dass unsere ausgewogene Methode darin besteht, entsprechend der IP-Adresse des Benutzers zuzuweisen.
Damit die Konfiguration wirksam wird, müssen wir Nginx nicht neu starten, sondern nur die Konfiguration neu laden.
Kopieren Sie den Code. Der Code lautet wie folgt:
sudo service nginx reload
Das obige ist der detaillierte Inhalt vonNginx-Initialisierungskonfigurationsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!