Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung der Nginx-Hochleistungskonfiguration

Detaillierte Erläuterung der Nginx-Hochleistungskonfiguration

WBOY
Freigeben: 2016-07-29 09:09:40
Original
1067 Leute haben es durchsucht
Nach dem Login kopieren
Detaillierte Erläuterung der Nginx-Konfiguration
#Globale Konfiguration
#Konfiguration auf hoher Ebene
Benutzer www-data#Benutzerstandardkonfiguration ausführen
pid /var/run/nginx.pid;#Portnummer Standardkonfiguration
worker_processes 8;#Definiert die Anzahl der Worker-Prozesse, wenn Nginx Webdienste für die Außenwelt bereitstellt
#Der optimale Wert hängt von vielen Faktoren ab, einschließlich (aber nicht beschränkt auf) der Anzahl der CPU-Kerne Anzahl der Festplatten, auf denen Daten gespeichert sind, und der Lademodus
#Normalerweise auf die Anzahl der CPUs eingestellt (bei Einstellung auf „Auto“ wird versucht, diese automatisch zu erkennen)
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 10000000; #Ordnen Sie 8 CPUs 8 Prozesse zu. Natürlich können Sie mehr schreiben oder einen Prozess mehreren CPUs zuweisen
worker_rlimit_nofile 200000;#Ändern Sie die maximale Anzahl geöffneter Dateien des Worker-Prozesses
#Wenn nicht festgelegt, dieser Wert ist das Limit des Betriebssystems
#Nachdem Sie es festgelegt haben, können Ihr Betriebssystem und Nginx mehr Dateien als „ulimit -a“ verarbeiten. Stellen Sie diesen Wert daher hoch ein, damit Nginx nicht über „zu viele offene Dateien“ verfügt. Problem
# Wenn Sie 10240 eingeben, beträgt die Gesamtparallelität. Wenn 30.000 bis 40.000 erreicht werden, kann die Anzahl der Prozesse 10.240 überschreiten und ein 502-Fehler wird zurückgegeben.
#Dieser Befehl bezieht sich auf die maximale Anzahl von Dateideskriptoren Der theoretische Wert sollte die maximale Anzahl geöffneter Dateien (ulimit -n) geteilt durch die Anzahl der Nginx-Prozesse sein, aber Nginx-Zuweisungsanforderungen sind nicht so einheitlich, daher ist es am besten, ihn mit dem Wert konsistent zu halten of ulimit -n
events {
worker_connections 102400; #Legen Sie die Verbindungen fest, die von einem Worker-Prozess gleichzeitig geöffnet werden können. Maximale Anzahl von Verbindungen
#Wenn die oben erwähnte worker_rlimit_nofile festgelegt ist, können wir festlegen dieser Wert ist sehr hoch.
#Wichtig: Die maximale Anzahl von Clients ist auch durch die Anzahl der verfügbaren Socket-Verbindungen im System begrenzt (~ 64K), daher bringt es keinen Vorteil, eine unrealistisch hohe Zahl festzulegen.
#Theoretisch ist die maximale Anzahl von Verbindungen für jeden Nginx-Server sind worker_processes*worker_connections
multi_accept on; #Sagen Sie Nginx, dass es nach Erhalt einer neuen Verbindungsbenachrichtigung so viele Verbindungen wie möglich akzeptieren soll
verwenden Sie epoll; #Legen Sie die Abfragemethode für die Wiederverwendung von Client-Threads fest
}
http {
server_tokens off; #Es führt nicht dazu, dass Nginx schneller ausgeführt wird, aber es kann die Nginx-Versionsnummer auf der Fehlerseite deaktivieren, was der Sicherheit dient.
Sendfile aktivieren ( ) kommt ins Spiel
tcp_nopush on; #Sagen Sie Nginx, dass es alle Header-Dateien in einem Paket senden soll, anstatt sie nacheinander zu senden
tcp_nodelay on; Stückweise – Wenn Daten rechtzeitig gesendet werden müssen, sollte dieses Attribut auf die Anwendung festgelegt werden, damit der Rückgabewert beim Senden einer kleinen Dateninformation nicht sofort abgerufen werden kann
access_log off; #Legen Sie fest, ob Nginx dies tun wird Zugriffsprotokolle speichern. Das Deaktivieren dieser Option kann Lese-/Festplatten-E/A-Vorgänge beschleunigen (auch bekannt als YOLO).
error_log /var/log/nginx/error.log crit; weist ein Keep-Alive-Link-Timeout zu. Nach diesem Timeout schließt der Server den Link. Wir setzen es niedriger, damit ngnix länger weiterarbeiten kann
client_header_timeout 10; #Legen Sie das Timeout für den Anforderungsheader fest. Wir können dies auch niedriger einstellen.
client_body_timeout 10; #Legen Sie das Timeout für den Anfragetext fest. Wir können dies auch niedriger einstellen.
reset_timedout_connection on; #Nginx anweisen, nicht reagierende Clientverbindungen zu schließen. Dadurch wird der von diesem Client belegte Speicherplatz freigegeben.
send_timeout 10;#Geben Sie das Antwort-Timeout des Clients an. Diese Einstellung wird nicht auf die gesamte Weiterleitung angewendet, sondern zwischen Client-Lesevorgängen. Wenn der Client in diesem Zeitraum keine Daten liest, schließt nginx die Verbindung
limit_conn_zone $binary_remote_addr z>
#Legen Sie die Parameter des gemeinsam genutzten Speichers fest, der zum Speichern verschiedener Schlüssel verwendet wird (z. B. die aktuelle Anzahl der Verbindungen). . #5m ist 5 Megabyte. Dieser Wert sollte groß genug eingestellt werden, um (32K*5) 32-Byte-Status oder (16K*5) 64-Byte-Status zu speichern.
limit_conn #Legen Sie die maximale Anzahl von Verbindungen für einen bestimmten Schlüssel fest. Der Schlüssel hier ist addr, und der von uns festgelegte Wert ist 100, was bedeutet, dass wir zulassen, dass jede IP-Adresse bis zu 100 Verbindungen gleichzeitig öffnet
include /etc/nginx/mime.types; #Nur eine, die einschließt eine andere in der aktuellen Datei Eine Anweisung für den Inhalt einer Datei. Hier verwenden wir es, um eine Reihe von MIME-Typen zu laden, die später verwendet werden
default_type text/html; #Legen Sie den von der Datei verwendeten Standard-MIME-Typ fest
charset UTF-8; #Legen Sie den Standard im Header fest file Der Zeichensatz
gzip on; # weist nginx an, Daten in gzip-Komprimierung zu senden. Dadurch wird die von uns gesendete Datenmenge reduziert.
gzip_disable "msie6" # GZIP-Funktionalität für den angegebenen Client deaktivieren. Wir setzen es auf IE6 oder niedriger, um unsere Lösung weitgehend kompatibel zu machen. So können Sie das höchste Komprimierungsverhältnis verwenden, sodass Nginx diese Dateien nicht mehr komprimieren muss.
gzip_proxied any; #Komprimierung von Antwortströmen basierend auf Anfragen und Antworten zulassen. Wir setzen es auf „any“, was bedeutet, dass alle Anfragen komprimiert werden.
gzip_min_length 1000; #Legen Sie die Mindestanzahl an Bytes fest, um die Datenkomprimierung zu ermöglichen.Wenn eine Anfrage weniger als 1000 Bytes umfasst,
#Wir sollten sie besser nicht komprimieren, da die Komprimierung dieser kleinen Daten alle Prozesse verlangsamt, die diese Anfrage verarbeiten.
gzip_comp_level 4; #Legen Sie die Komprimierungsstufe der Daten fest. Diese Stufe kann ein beliebiger Wert zwischen 1 und 9 sein, wobei 9 die langsamste Stufe ist, aber das höchste Komprimierungsverhältnis aufweist.
#Wir setzen es auf 4, was eine kompromisslosere Einstellung ist
gzip_buffers 16 8k;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/ xml +rss text/javascript;#Legen Sie das zu komprimierende Datenformat fest
open_file_cache max=100000 inactive=20s; #Beim Öffnen des Caches geben Sie auch die maximale Anzahl der Caches und die Cache-Zeit an.
#Wir können eine relativ hohe Maximalzeit festlegen, damit wir sie löschen können, nachdem sie länger als 20 Sekunden inaktiv waren
open_file_cache_valid 30s; #Geben Sie das Intervall für die Erkennung korrekter Informationen in open_file_cache an
open_file_cache_min_uses 2; Definieren Sie die Mindestanzahl von Dateien während der Inaktivitätszeit des Befehlsparameters in open_file_cache
open_file_cache_errors on
include /etc/nginx/sites-; aktiviert/*;
}
Das Obige enthält eine ausführliche Erläuterung der Nginx-Hochleistungskonfiguration, einschließlich inhaltlicher Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
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