Nginx-Schnellstart-Beispielanalyse

WBOY
Freigeben: 2023-05-14 12:19:20
nach vorne
912 Leute haben es durchsucht

Warum Nginx verwenden?

Der Hauptkonkurrent von Nginx ist derzeit Apache. Hier werde ich einen einfachen Vergleich zwischen den beiden anstellen, damit jeder die Vorteile von Nginx besser versteht.

1. Als Webserver:

Im Vergleich zu Apache verbraucht Nginx weniger Ressourcen, unterstützt mehr gleichzeitige Verbindungen und spiegelt eine höhere Effizienz wider. Dies macht Nginx besonders bei Anbietern virtueller Hosts beliebt. Bei hoher Verbindungsgleichzeitigkeit ist Nginx eine gute Alternative zum Apache-Server: Nginx ist eine der von Chefs im virtuellen Host-Geschäft in den USA häufig gewählten Softwareplattformen und kann Antworten von bis zu 50.000 gleichzeitigen Verbindungen unterstützen. Vielen Dank an Nginx für Wir haben Epoll und Kqueue als Entwicklungsmodell ausgewählt.

nginx als Lastausgleichsserver: Nginx kann Rails und PHP-Programme direkt intern unterstützen, um externe Dienste bereitzustellen, oder es kann externe Dienste als http-Proxyserver unterstützen. Nginx ist in C geschrieben und sein Systemressourcenaufwand und die CPU-Nutzungseffizienz sind viel besser als bei Perlbal.

2. Die Nginx-Konfiguration ist einfach, Apache ist komplex:

nginx ist besonders einfach zu starten und kann fast 7 * 24 ohne Unterbrechung laufen. Auch wenn es mehrere Monate lang läuft, muss es nicht neu gestartet werden. Sie können auch einen unterbrechungsfreien Service genießen. In diesem Fall kann die Softwareversion aktualisiert werden.

Die statische Verarbeitungsleistung von Apache ist mehr als dreimal höher als die von Apache. Nginx muss mit anderen Backends verwendet werden.

3. Der Hauptunterschied ist:

Apache ist ein synchrones Multiprozessmodell, eine Verbindung entspricht einem Prozess; Nginx ist asynchron, mehrere Verbindungen (10.000 Ebenen) können einem Prozess entsprechen.

4. Die Fachgebiete der beiden sind:

Der Vorteil von Nginx besteht darin, statische Anforderungen mit geringer CPU-Speicherauslastung zu verarbeiten, und Apache ist für die Verarbeitung dynamischer Anforderungen geeignet, sodass das Front-End jetzt im Allgemeinen Nginx als verwendet Ein Reverse-Proxy, der dem Druck standhält, dient als Backend für die Verarbeitung dynamischer Anfragen.

Grundlegende Verwendung von Nginx

Systemplattform: Centos Release 6.6 (final) 64-Bit.

1. Installieren Sie Kompilierungstools und Bibliotheksdateien

Nginx-Schnellstart-Beispielanalyse2. Installieren Sie zunächst pcre

1. Die Funktion von pcre besteht darin, Nginx zur Unterstützung der Rewrite-Funktion zu aktivieren. Laden Sie das PCRE-Installationspaket herunter, Download-Adresse:

Nginx-Schnellstart-Beispielanalyse

2. Entpacken Sie das Installationspaket: Nginx-Schnellstart-Beispielanalyse

3. Geben Sie das Installationspaketverzeichnis ein Nginx-Schnellstart-Beispielanalyse

4. Kompilieren und installieren Sie Nginx-Schnellstart-Beispielanalyse

5. PCRE-Version anzeigen Nginx-Schnellstart-Beispielanalyse

Nginx-Schnellstart-Beispielanalyse

Nginx-Schnellstart-Beispielanalyse 3. Nginx installieren

1. Nginx herunterladen, Download-Adresse:

Nginx-Schnellstart-Beispielanalyse

2. Installationspaket entpacken Nginx-Schnellstart-Beispielanalyse

3. Geben Sie das Installationspaketverzeichnis ein Nginx-Schnellstart-Beispielanalyse

4. Kompilieren und installieren Sie Nginx-Schnellstart-Beispielanalyse

5. Überprüfen Sie die Nginx-Version Nginx-Schnellstart-Beispielanalyse

Nginx-Schnellstart-Beispielanalyse

An diesem Punkt ist die Nginx-Installation abgeschlossen. Nginx-Schnellstart-Beispielanalyse

4. Nginx-Konfiguration

Erstellen Sie das Benutzer-WWW zum Ausführen von Nginx:

Konfigurieren Sie nginx.conf und ersetzen Sie /usr/local/webserver/nginx/conf/nginx.conf durch den folgenden InhaltNginx-Schnellstart-Beispielanalyse

Überprüfen Sie die Richtigkeit des Befehls ngnix.conf in der Konfigurationsdatei: Nginx-Schnellstart-Beispielanalyse5. Nginx starten

Nginx-Schnellstart-Beispielanalyse

nginx unsere konfigurierte Site-IP aus dem Browser:

Nginx-Schnellstart-Beispielanalyse

nginx Allgemeine Anweisungen Beschreibung

1. Einige Parameter von nginx haben beim Ausführen nichts mit bestimmten Geschäftsfunktionen (z. B. HTTP-Dienst oder E-Mail-Dienst-Proxy) zu tun, z von Arbeitsabläufen, Laufidentität etc. Nginx-Schnellstart-Beispielanalyse

woker_processes 2Nginx-Schnellstart-Beispielanalyse

Im Hauptabschnitt der Konfigurationsdatei auf oberster Ebene wird die Anzahl der Worker-Prozesse der Worker-Rolle angezeigt, die der Master-Prozess empfängt und den Workern Anfragen zur Verarbeitung zuweist. Dieser Wert kann einfach auf die Anzahl der Kerne des CPU grep ^processor /proc/cpuinfo | gesetzt werden, was auch der automatische Wert ist. Wenn SSL und GZIP aktiviert sind, sollte er auf den gleichen oder sogar den gleichen Wert gesetzt werden Verdoppeln Sie die Anzahl der logischen CPUs, wodurch der E/A-Vorgang reduziert werden kann. Wenn der Nginx-Server über andere Dienste verfügt, können Sie erwägen, diese entsprechend zu reduzieren.

worker_cpu_affinity

steht auch im Hauptteil. In Situationen mit hoher Parallelität wird der Leistungsverlust, der durch die Rekonstruktion von Registern vor Ort usw. durch Multi-CPU-Core-Switching verursacht wird, durch Festlegen der CPU-Stickiness reduziert. Wie worker_cpu_affinity 0001 0010 0100 1000 (Quad-Core).

Nginx-Schnellstart-Beispielanalyseworker_connections 2048

steht im Bereich Veranstaltungen. Die maximale Anzahl von Verbindungen, die jeder Arbeitsprozess gleichzeitig verarbeiten (initiieren) kann (einschließlich der Anzahl von Verbindungen mit Clients oder Back-End-Proxy-Servern). Als Reverse-Proxy-Server verfügt Nginx über eine Berechnungsformel: maximale Anzahl an Verbindungen = worker_processes * worker_connections/4, daher beträgt die maximale Anzahl an Client-Verbindungen hier 1024. Es spielt keine Rolle, ob diese je nach Fall auf 8192 erhöht werden kann Situation, aber es darf die nachfolgende worker_rlimit_nofile nicht überschreiten. Wenn Nginx als http-Server verwendet wird, wird die Berechnungsformel durch 2 geteilt.

worker_rlimit_nofile 10240

steht im Hauptteil. Der Standardwert ist keine Einstellung und kann auf die maximale Betriebssystemgrenze von 65535 begrenzt werden.

use epoll

geschrieben im Abschnitt „Ereignisse“. Unter dem Linux-Betriebssystem verwendet Nginx standardmäßig das Epoll-Ereignismodell. Dadurch ist Nginx unter dem Linux-Betriebssystem recht effizient. Gleichzeitig verwendet Nginx eine effiziente Ereignismodell-Kqueue, ähnlich wie Epoll auf den Betriebssystemen OpenBSD oder FreeBSD. Verwenden Sie „select“ nur, wenn das Betriebssystem diese effizienten Modelle nicht unterstützt.
2. http-Server

Einige Konfigurationsparameter im Zusammenhang mit der Bereitstellung von http-Diensten. Zum Beispiel: ob Keepalive verwendet werden soll, ob gzip zur Komprimierung verwendet werden soll usw.

sendfile on

aktiviert den effizienten Dateiübertragungsmodus. Die sendfile-Anweisung gibt an, ob nginx die sendfile-Funktion aufruft, um Dateien auszugeben, wodurch der Kontextwechsel vom Benutzerbereich zum Kernelbereich reduziert wird. Wenn es für Anwendungen mit hoher Festplatten-E/A-Belastung wie Downloads verwendet wird, kann es deaktiviert werden, um die Geschwindigkeit der Festplatten- und Netzwerk-E/A-Verarbeitung auszugleichen und die Systemlast zu reduzieren.

keepalive_timeout 65

: Langes Verbindungs-Timeout, in Sekunden. Dieser Parameter ist sehr sensibel und hängt von der Art des Browsers, der Timeout-Einstellung des Back-End-Servers und der Einstellung des Betriebssystems ab. Sie können einen weiteren Artikel schreiben. Wenn eine lange Verbindung eine große Anzahl kleiner Dateien anfordert, können die Kosten für die Wiederherstellung der Verbindung gesenkt werden. Wenn jedoch eine große Datei hochgeladen wird, schlägt der Upload fehl, wenn er nicht innerhalb von 65 Sekunden abgeschlossen wird. Wenn die Einrichtungszeit zu lang ist und viele Benutzer vorhanden sind, wird die Aufrechterhaltung der Verbindung über einen langen Zeitraum viele Ressourcen beanspruchen.
send_timeout:

Wird verwendet, um den Timeout-Zeitraum für die Beantwortung des Clients anzugeben. Dieses Timeout ist auf die Zeit zwischen zwei Verbindungsaktivitäten begrenzt. Wenn diese Zeit ohne Aktivität auf dem Client überschritten wird, schließt nginx die Verbindung.

client_max_body_size 10m

Die maximale Anzahl an Bytes einer einzelnen Datei, die vom Client angefordert werden darf. Wenn Sie eine größere Datei hochladen, legen Sie bitte deren Grenzwert fest

client_body_buffer_size 128k

Die maximale Anzahl von Bytes, die der Puffer-Proxy die Client-Anfrage puffert

Modul http_proxy:
Dieses Modul implementiert Nginx als Reverse-Proxy-Server. Funktionen: inklusive Caching-Funktion (siehe auch Artikel)

proxy_connect_timeout 60

nginx-Verbindungs-Timeout mit dem Backend-Server (Proxy-Verbindungs-Timeout)proxy_read_timeout 60

Nach einer erfolgreichen Verbindung, zwischen zwei erfolgreichen Antwortvorgängen mit dem Backend-Server Timeout (Proxy-Empfangs-Timeout)

proxy_buffer_size 4k Legen Sie die Puffergröße für den Proxy-Server (nginx) fest, um Benutzer-Header-Informationen vom Back-End-Realserver zu lesen und zu speichern. Die Standardgröße ist dieselbe wie bei „proxy_buffers“. Tatsächlich können Sie diesen Befehlswert kleiner einstellen

BProxy_buffers 4 32K

proxy_buffers Puffer, Nginx-Antwort vom Back-End-Realserver für einen einzelnen Verbindungscache, die Webseite liegt unter 32K, sodass die

Proxy_busy_Size 64K


(proxy_buffers*2) rProxy_max_temp_file_size

Wenn Proxy_ Puffer können die Antwort nicht aufnehmen Inhalt des Back-End-Servers, ein Teil davon wird in einer temporären Datei auf der Festplatte gespeichert. Dieser Wert wird verwendet, um die maximale temporäre Dateigröße festzulegen. Der Standardwert ist 1024 m. Er hat nichts mit Proxy_cache zu tun. Größer als dieser Wert wird vom Upstream-Server zurückgegeben. Zum Deaktivieren auf 0 setzen.

proxy_temp_file_write_size 64k

Wenn der Cache vom Server als Proxy verwendet wird, um auf temporäre Dateien zu reagieren, begrenzt diese Option die Größe der temporären Datei, die jedes Mal geschrieben wird. Proxy_temp_path (kann während der Kompilierung angegeben werden), in welches Verzeichnis geschrieben werden soll.

proxy_pass, Proxy_redirect siehe Standortabschnitt.

Module http_gzip:

gzip on: Gzip-Komprimierungsausgabe aktivieren, um die Netzwerkübertragung zu reduzieren.

  1. gzip_min_length 1k: Legen Sie die Mindestanzahl der Bytes der Seite fest, die komprimiert werden dürfen. Die Anzahl der Seitenbytes wird aus der Inhaltslänge des Headers ermittelt. Der Standardwert ist 20. Es wird empfohlen, die Anzahl der Bytes auf mehr als 1 KB festzulegen. Wenn sie weniger als 1 KB beträgt, wird die Komprimierung möglicherweise immer stärker.

  2. gzip_buffers 4 16k: Stellen Sie das System so ein, dass es mehrere Cache-Einheiten zum Speichern des GZIP-Komprimierungsergebnisdatenstroms erhält. 4 16 KB bedeutet, dass Speicher in Einheiten von 16 KB beantragt wird, also das Vierfache der Größe der Originaldaten, die in Einheiten von 16 KB installiert werden sollen.

  3. gzip_http_version 1.0: Wird verwendet, um die Version des http-Protokolls zu identifizieren. Daher wurde diese Option hinzugefügt, um frühere Versionen zu unterstützen Wenn Sie einen Proxy verwenden und auch die GZIP-Komprimierung aktivieren möchten, setzen Sie diese bitte auf 1.0, da die Endkommunikation http/1.0 ist.

  4. gzip_comp_level 6: gzip-Komprimierungsverhältnis, 1 hat das kleinste Komprimierungsverhältnis und die schnellste Verarbeitungsgeschwindigkeit, 9 hat das größte Komprimierungsverhältnis, aber die langsamste Verarbeitungsgeschwindigkeit (schnelle Übertragung, verbraucht aber mehr CPU)

  5. gzip_types: Passen Sie an Mime-Typ für die Komprimierung, unabhängig davon, ob angegeben oder nicht, der Typ „text/html“ wird immer komprimiert.

  6. gzip_proxied any: Aktiviert, wenn nginx als Reverse-Proxy verwendet wird, bestimmt es, ob die Komprimierung der vom Back-End-Server zurückgegebenen Ergebnisse aktiviert oder deaktiviert werden soll. Voraussetzung für den Abgleich ist, dass der Back-End-Server a zurückgeben muss Header mit „via“.

  7. gzip_vary on: Es hängt mit dem HTTP-Header zusammen. Es fügt dem Antwortheader „vary:accept-encoding“ hinzu, was es dem Front-End-Cache-Server ermöglicht, gzip-komprimierte Seiten zwischenzuspeichern Nginx-komprimierte Daten.

3. Virtueller Server-Host

http-Dienst unterstützt mehrere virtuelle Hosts. Jeder virtuelle Host verfügt über ein entsprechendes Serverkonfigurationselement, das die Konfiguration für den virtuellen Host enthält. Bei der Bereitstellung eines Proxys für Mail-Dienste können Sie auch mehrere Server erstellen. Jeder Server unterscheidet sich durch seine Abhöradresse oder seinen Port.

listen

Der Abhörport ist standardmäßig 80. Wenn er kleiner als 1024 ist, muss er als Root gestartet werden. Es kann in der Form „listen *:80“, „listen 127.0.0.1:80“ usw. vorliegen.

Servername

Servernamen, z. B. localhost, www.example.com, können durch reguläre Ausdrücke abgeglichen werden.

Modul http_stream

Dieses Modul verwendet einen einfachen Planungsalgorithmus, um einen Lastausgleich von der Client-IP zum Backend-Server zu erreichen. Auf den Upstream folgt der Name des Lastausgleichers, und der Backend-Realserver ist in der Form {} organisiert host:port-Optionen; Mitte. Wenn nur ein Backend proxiert wird, können Sie es auch direkt in Proxy_pass schreiben.

4. Standort

Im http-Dienst gibt es eine Reihe von Konfigurationselementen, die bestimmten spezifischen URLs entsprechen.

root /var/www/html

Definiert den Standard-Website-Stammspeicherort des Servers. Wenn locationurl mit einem Unterverzeichnis oder einer Datei übereinstimmt, hat root keine Auswirkung und wird normalerweise in der Serveranweisung oder unter / platziert.

index index.jsp index.html index.htm

Definieren Sie den Dateinamen, auf den standardmäßig unter dem Pfad zugegriffen wird, normalerweise gefolgt von root

proxy_pass http:/backend

Die Anforderung wird an die vom Backend definierte Serverliste weitergeleitet , der Reverse-Proxy, der dem Upstream-Lastausgleich entspricht. Sie können auch http://ip:port als Proxy übergeben.

proxy_redirect off;

proxy_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;

Diese vier sind vorerst so eingerichtet , sehr komplexe Inhalte werden auch in einem anderen Artikel erläutert.

In Bezug auf das Schreiben von Standortanpassungsregeln kann gesagt werden, dass es sich um eine Zusammenfassung der Nginx-Konfiguration und um das Schreiben von Regeln handelt.

5.1 Zugriffskontrolle erlauben/ Deny

nginx-Zugriff Das Steuermodul wird standardmäßig installiert, und die Schreibmethode ist auch sehr einfach. Sie können den Zugriff auf eine bestimmte IP oder ein IP-Segment mehrfach zulassen oder verbieten drehen, stoppt der Abgleich. Zum Beispiel:

Wir verwenden häufig auch htpasswd des httpd-devel-Tools, um das Anmeldekennwort für den Zugriffspfad festzulegen:

Nginx-Schnellstart-Beispielanalyse

Dadurch wird standardmäßig eine mit crypt verschlüsselte Passwortdatei generiert. Öffnen Sie die beiden Kommentarzeilen im Nginx-Status oben und starten Sie Nginx neu, damit es wirksam wird.

5.2 Autoindex des Verzeichnisses auflisten

nginx erlaubt standardmäßig keine Auflistung des gesamten Verzeichnisses. Wenn Sie diese Funktion benötigen, öffnen Sie die Datei nginx.conf und fügen Sie im Abschnitt „Standort“, „Server“ oder „http“ die beiden anderen Parameter hinzu:

  1. autoindex_exact_size off; Die genaue Größe der Datei. Größe, Einheit ist Bytes. Nach dem Ausschalten wird die ungefähre Größe der Datei angezeigt, die Einheit ist kb oder mb oder gb autoindex_localtime an

  2. Die Standardeinstellung ist aus und die angezeigte Dateizeit ist GMT-Zeit. Nach dem Einschalten ist die angezeigte Dateizeit die Serverzeit der Datei

Nginx-Schnellstart-Beispielanalyse

Das obige ist der detaillierte Inhalt vonNginx-Schnellstart-Beispielanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage