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
2. 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:
2. Entpacken Sie das Installationspaket:
3. Geben Sie das Installationspaketverzeichnis ein
4. Kompilieren und installieren Sie
5. PCRE-Version anzeigen
3. Nginx installieren
1. Nginx herunterladen, Download-Adresse:
2. Installationspaket entpacken
3. Geben Sie das Installationspaketverzeichnis ein
4. Kompilieren und installieren Sie
5. Überprüfen Sie die Nginx-Version
An diesem Punkt ist die Nginx-Installation abgeschlossen.
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 Inhalt
Überprüfen Sie die Richtigkeit des Befehls ngnix.conf in der Konfigurationsdatei: 5. Nginx starten
nginx unsere konfigurierte Site-IP aus dem Browser:
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.
woker_processes 2
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).
worker_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 10240steht 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.
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.
: 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:
client_max_body_size 10m
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)
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 32Kproxy_buffers Puffer, Nginx-Antwort vom Back-End-Realserver für einen einzelnen Verbindungscache, die Webseite liegt unter 32K, sodass die
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.
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.
Module http_gzip:
gzip on: Gzip-Komprimierungsausgabe aktivieren, um die Netzwerkübertragung zu reduzieren.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. listenDer 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.
Servernamen, z. B. localhost, www.example.com, können durch reguläre Ausdrücke abgeglichen werden.
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.
Definieren Sie den Dateinamen, auf den standardmäßig unter dem Pfad zugegriffen wird, normalerweise gefolgt von root
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_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
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: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:
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
Die Standardeinstellung ist aus und die angezeigte Dateizeit ist GMT-Zeit. Nach dem Einschalten ist die angezeigte Dateizeit die Serverzeit der Datei
Das obige ist der detaillierte Inhalt vonNginx-Schnellstart-Beispielanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!