Vor einiger Zeit Ich habe Ihnen von dieser Reihe von Tutorials erzählt, zum Installieren und Konfigurieren eines Servers für Hosting mit hoher Nachfrage. In diesem Artikel geht es um die Installation und Konfiguration von Nginx:
Nginx:
Wir haben Ihnen bereits früher in diesem Artikel von Nginx erzählt Nginx: Eine interessante Alternative zu ApacheDort haben wir Ihnen gesagt, dass es sich um einen Webserver wie Apache, LightHttpd oder Cherokee handelt, der sich jedoch im Vergleich zu Apache durch Leistung und geringen Hardwareverbrauch auszeichnet, weshalb viele große Websites wie Facebook, MyOpera.com, DropBox oder sogar WordPress.com verwendet Nginx anstelle von Apache. In der Linux-Welt ist DesdeLinux nicht der einzige, der Nginx verwendet, soweit ich weiß, verwenden auch emsLinux und MuyLinux
Meine persönlichen Erfahrungen mit Nginx reichen mehrere Jahre zurück, als ich notgedrungen nach leichten Alternativen zu Apache suchte. Zu dieser Zeit war Nginx auf Version 0.6 und seine Kompatibilität mit Websites mit hoher Nachfrage, die in PHP erstellt wurden, war nicht die optimalste, jedoch heute ab Version 0.9 (v1.2.1 verfügbar unter Debian Stable, v1.4.2 verfügbar unter ArchLinux) hat sich stark verbessert, bis zu dem Punkt, dass mit einer richtigen Konfiguration und Vereinigung von Nginx + PHP alles wie ein Zauber funktioniert.
In dieser Tutorialserie Ich werde Nginx Version 1.2.1-2.2 verwenden, verfügbar in den Debian Stable Repos (Wheezy).
1. Installation:
Wir beginnen mit der Installation von Nginx aus unseren Repositorys.
Wenn Sie auf Ihrem Server eine Distribution wie Debian, Ubuntu oder ein Derivat im Terminal verwenden, müssen Sie Folgendes eingeben und drücken Enter :
aptitude install nginx
Wenn Sie auf Ihrem Server eine andere Distribution wie CentOS, Red Hat oder Fedora verwenden, installieren Sie einfach das Paket: nginx aus dem offiziellen Repository
2. Konfiguration:
Wir haben Nginx bereits installiert, müssen es aber natürlich noch konfigurieren. Ich habe eine komprimierte FTP-Datei vorbereitet, die alle auf den DesdeLinux-Servern verwendeten Konfigurationen enthält, sowohl für PHP, Nginx usw. Laden wir die Datei herunter und entpacken sie:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
Dadurch wird ein Ordner mit dem Namen nginx-spawn-fastcgi erstellt. Daraus werden zwei Dateien für reines Nginx benötigt (dh ohne Verknüpfung mit PHP):
- nginx.conf - »Hauptkonfigurationsdatei von Nginx (wir werden später über deren Inhalt sprechen)
- index.html - »Eine einfache HTML-Datei, mit der wir prüfen, ob Nginx in seiner grundlegendsten Form wirklich für uns funktioniert
- mywebsite.net - »Konfigurationsdatei für eine einfache Website, einen VHost (Virtual Host), der den Zugriff auf das vorherige HTML konfiguriert
Wechseln wir zunächst zum Ordner mit den Nginx-Einstellungen:
cd /etc/nginx/
Dann entfernen wir die Standardkonfiguration und setzen unsere eigene:
mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./
Dies ist, wie gesagt, die Hauptkonfigurationsdatei von Nginx, in der ich bereits Folgendes definiert habe:
Benutzer www-Daten; worker_processes 4; pid /var/run/nginx.pid;
Benutzerzugriff auf das Dateisystem (mit dem nginx überall zugreifen kann), Anzahl der zu bearbeitenden Prozesse und auch die PID (nginx-Prozess-ID).
Wir haben dort auch einen kleinen Block namens Ereignisse (Einstellungen für Ereignisse), der eine Zeile enthält, die die maximal zulässige Anzahl von Verbindungen pro Ereignis angibt. Unten ist der Block namens http.
Dieser http-Block enthält fast alles, was mit Hosting zu tun hat, zumindest viele Dinge, die Sie interessieren werden. Zum Beispiel die maximale Zeit zum Leben oder Warten (Timeout), wo sich unsere allgemeinen Protokolle (access.log und error.log) befinden, die Datenkomprimierung mit gzip sowie andere Regeln, die in Zukunft nützlich sein könnten.
Sobald die Hauptkonfigurationsdatei vorhanden ist, kopieren wir die Datei von unserem VHost in den für Websites verfügbaren Ordner
cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/
Außerdem müssen wir aus dieser Datei einen symbolischen Link zum Ordner "sites-enabled" erstellen.
ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/
Ich erkläre, wie nützlich es ist, Websites aktiviert und verfügbar zu machen.
Sie werden Momente finden, in denen mehrere vhost-Dateien bereit und konfiguriert sein müssen, da sie auf diesem Server beispielsweise 5 Websites online stellen. Es kommt jedoch vor, dass es noch nicht an der Zeit ist, 2 dieser 5 vhosts zu aktivieren. Sie müssen jedoch die Dateien bereithalten, damit sie bei Bedarf in kürzester Zeit online sind. Sie können so viele Vhosts in Sites-Available (Sites-Available) einfügen, wie Sie möchten, da diejenigen, die Nginx liest, um sie online zu stellen, nur Sites-fähig sind (Sites-fähig). Dies würde auch in die entgegengesetzte Richtung funktionieren. Wenn Sie eine Site (zum Beispiel vorübergehend) offline schalten möchten, müssen Sie keine Dateien von Ihrem Server löschen (Dateien, die wir später benötigen). Wir entfernen einfach den symbolischen Link von Sites, die für Sites aktiviert sind, und fertig. Das Dienstprogramm, symbolische Links zu haben und die Datei nicht einfach von einem Ordner in einen anderen zu kopieren, besteht darin, dass es beim Bearbeiten eines vhost keine Rolle spielt, ob wir den in aktiviert oder verfügbar befindlichen bearbeiten, am Ende ist es der gleiche
Archiv.
Die Datei mywebsite.net, wie ich bereits sagte, ein vhost, der als Beispiel dient, dh mit anderen Worten, wir müssen mywebsite.net ändern und unsere Konfigurationen festlegen.
Wir müssen Folgendes ändern:
- access_log (Zeile 3): Dies ist der Pfad der Zugriffsprotokolldatei zu dieser Site
- error_log (Zeile 4): Dies ist der Pfad der Fehlerprotokolldatei zu dieser Site
- Servername (Zeile 5): Die URL und Domäne, die in diesem Ordner gehostet wird. Wenn es sich beispielsweise um das DesdeLinux-Forum handeln würde, wäre es: Servername Forum.desdelinux. Net
- root (Zeile 6): Der Pfad zu dem Ordner, in dem sich die HTML-Dateien befinden, belassen wir diesen in / var / www /, da es sich nur um einen Test handelt
Jetzt müssen wir nur noch die HTML-Datei in den Ordner kopieren, den wir in unserer VHost-Datei / var / www / definiert haben:
mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/
Dann starten wir Nginx neu und das wars:
service nginx restart
Und voila, so etwas wird erscheinen:
Ich erinnere Sie daran, dass wir zuerst mit Nginx für HTML arbeiten, ohne PHP-Unterstützung zu haben. Diese Installation von PHP und die Verknüpfung mit Nginx wird der Inhalt des nächsten Tutorials sein (in ein paar Tagen, wie ich verspreche).
Wie auch immer, dies ist das Nginx-Installations- und Konfigurations-Tutorial, damit es rein funktioniert, dh eine HTML-Site. Ich hoffe, es wird für Sie von Interesse sein.
Ich werde klarstellen, dass es ja immer noch Best Practices gibt, die angewendet werden können. Warten wir jedoch, bis wir diese Reihe von Tutorials abgeschlossen haben, und bewerten wir dann das Endergebnis der Arbeit
Grüße
Danke, sehr hilfreich!
Danke für deinen Kommentar
In Backports gibt es Nginx 1.4 ..
Ja, aber auf einem Server in der Produktion verwende ich nichts davon 😀
Mit "das" meinen Sie die neueste stabile und getestete Version, die von nginx veröffentlicht wurde. Sie lassen es so klingen, als würde es von Sid passen. ~ _ ~
Ach komm schon, ist das ... auf den Servern, auf denen ich noch nie andere Repos, Backports oder ähnliches benutzt habe 🙂
Immer stabil auf Servern, das habe ich vor Jahren gelernt.
Nginx 1.4 ist seit letztem April stabil, in Backports ist es 1.4.1-3.
2013-04-24
Die stabile Version von nginx-1.4.0 wurde veröffentlicht und enthält viele neue Funktionen, die in der 1.3.x-Verzweigung entwickelt wurden - Unterstützung für das Proxying von WebSocket-Verbindungen, OCSP-Heftung, SPDY-Modul, Gunzip-Filter und mehr.
http://nginx.org/en/CHANGES-1.4
Sie haben Recht mit dem, was Sie sagen, mein Hut ist ab.
Vielen Dank für das Teilen. Ich setze derzeit Ihren ältesten Beitrag in die Praxis um.
Ich werde dich mit Fragen XD füllen
Danke fürs Lesen 🙂
Wenn Sie Fragen oder Bedenken haben, sind wir hier, um Ihnen zu helfen, es gibt das Forum.desdelinux.net, wo wir gemeinsam versuchen werden, Ihnen die beste Lösung zu bieten
Grüße
Ich habe eine Frage Ich habe LAMP [Linux (Debian Wheezy), Apache, PHP und MySQL] auf meinem Server für WordPress und Owncloud ausgeführt. Wie migriere ich zu Ngnix? Eine andere Frage ist, welchen Unterschied es zwischen Ngnix und Lighttpd gibt.
Die größte Komplikation oder Schwierigkeit bei der Migration von Apache zu Nginx sind die Konfigurationen der einzelnen Sites, insbesondere der von Ihnen verwendete .htaccess.
Der .htaccess ist am komplexesten, wenn Sie zu Nginx wechseln, da es sich um verschiedene Konfigurationen handelt, die Sie in den Nginx VHost einfügen müssen.
Über LightHTTPd und Nginx… Ich weiß nicht, ich habe LightHTTPd vor vielen Jahren nur einmal verwendet. Derzeit habe ich keine Ahnung, wie seine Entwicklung verläuft, insbesondere mit PHP.
NGINX sieht im Vergleich zu Apache ziemlich einfach aus. Warten auf die nächste Episode, um sie mit PHP ergänzen zu können
Ich warte auf die Tipps, um mehr auf nginx 😀 zu optimieren
Übrigens, Gaara, Sie können in Ihr nächstes Tutorial aufnehmen, wie Sie die SSL-Unterstützung implementieren.
Grüße.
Die Tipps, die kommen, sind tatsächlich die Optimierung der PHP-Verarbeitung und des Caches auf Websites. Ich kann das Beispiel der Konfiguration geben, die wir in DesdeLinux für Nginx+Wordpress+W3_Total_Cache verwenden :)
Vielen Dank für Ihren guten Beitrag.
Und der Leitfaden für Archlinux wann? xD
In Arch war es sehr ähnlich, nur die Namen der Pakete ändern sich, aber ... die conf ist fast identisch
Aber wer hat einen Produktionsserver mit Arch? 😀
Hallo,
Ich bin es wieder xD ...
Ich habe Ihre Schritte befolgt, um sie auf einem Computer mit Archlinux anzuwenden, und ich habe das folgende Problem:
[abr4xas@Genius www]$ systemctl status nginx.service
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)
Irgendwelche Vorschläge 😀
Jo… xox, ich möchte nur einen internen Server, das heißt, ich möchte nur xampp ersetzen, sollte ich das alles tun?
Wenn Sie möchten, können Sie dies implementieren (was ich wiederhole, es ist das, womit DL funktioniert). Tatsächlich habe ich meinen virtuellen Server (den ich zum Entwickeln und Testen verwende) mit der gleichen Sache gemacht, die ich erkläre.
Das heißt, Sie können entweder XAMPP entfernen und diese Variante einfügen, und es wird gut funktionieren, oder wenn Sie XAMPP verlassen möchten, funktioniert es immer noch für Sie.
Der positive Punkt bei der Verwendung, den ich zeige, ist der im Vergleich zu Apache sehr geringe Hardwareverbrauch, aber auf Ihrem PC, der kein Hosting mit hoher Nachfrage ist, weit davon entfernt ... Wenn XAMPP für Sie gut funktioniert, tue ich das nicht sehen, warum es entfernen 🙂
Ich habe bereits meinen Linux-Server ausgeführt (Debian, Nginx, MySQL und PHP). Es fiel mir schwer, PHP mit Nginx zum Laufen zu bringen, da ich an den einfachen Apache-Webserver gewöhnt war.
Nun, meine Frage ist: Weiß jemand, wie ich eine Testdomäne, die ich gekauft habe, auf meinen Server verweisen kann? Ich würde gerne meine .com-Domain ausprobieren, um zu sehen, wie es funktioniert, aber ich habe keine Ahnung, wie es geht, da ich immer eine NOIP-Adresse verwendet habe, um mit dem noip DUC darauf zuzugreifen.
Ich hoffe jemand kann mir helfen, Danke!
Ich bekomme dies, wenn ich versuche, eine Verbindung zu Ihrem FTP herzustellen:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
HTTP-Anfrage gesendet und wartet auf Antwort… 404 Nicht gefunden
2015-11-23 17:46:30 FEHLER 404: Nicht gefunden.
Ich habe meinen CentOS-Server ausgeführt (Gunicorn, Nginx, PHP). Ich habe viel Arbeit gebraucht, um sie zum Laufen zu bringen, aber der Punkt, an dem ich feststeckte, ist, dass die Webseite, die ich starten möchte, in diesem Fall die Konfiguration des Domänenanbieters benötigt. In diesem Fall Go Daddy An diesem Punkt weiß ich also nicht, wie ich weitermachen soll.
Könnten Sie mir die Konfigurationsdateien mitteilen, da ich sie bitte nicht herunterladen kann?