So installieren Sie einen Webserver mit Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [2. Teil: Nginx]

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).

Dieses Tutorial befasst sich ausschließlich mit Nginx, nicht mit Nginx + PHP, der Vereinigung von Nginx + PHP sowie dessen Optimierung oder notwendiger Konfiguration nächstes Tutorial

1. Installation:

Wir beginnen mit der Installation von Nginx aus unseren Repositorys.

Alle Befehle, die ausgeführt werden, werden mit Root-Berechtigungen ausgeführt, indem entweder sudo am Anfang jeder Zeile eingefügt oder als root angemeldet wird

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

aptitude wird in Ubuntu nicht standardmäßig installiert. Ich empfehle jedoch, es zu installieren und anstelle von apt-get zu verwenden, da aptitude in bestimmten Fällen die Abhängigkeiten besser verwaltet

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

Persönlich empfehle ich kein Derivat von Debian, nicht einmal Ubuntu für Server. Im Laufe der Jahre waren meine Erfahrungen nicht ganz zufriedenstellend. Meine erste Wahl für das Server-Betriebssystem ist Debian, dann würde ich an CentOS denken, schließlich an etwas BSD

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
Offensichtlich müssen sie in ihren DNS-Einträgen ihres Hosting-Anbieters (mit CPanel oder einem anderen Tool) darauf hinweisen, dass sich die in Servername deklarierte Domäne oder Subdomäne auf der IP-Adresse dieses Servers befindet, den sie konfigurieren. Das heißt, im DNS, in dem sie Subdomains für ihre Domain erstellen, müssen sie deklarieren, dass sich die Domain oder Subdomain, die sie in Zeile 5 eingegeben haben, auf diesem Server befindet (dieser Server = die IP-Adresse des betreffenden Servers).

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:

nginx-pure-test-site-html

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


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

     Nelson sagte

    Danke, sehr hilfreich!

        KZKG ^ Gaara sagte

      Danke für deinen Kommentar

     Dhunter sagte

    In Backports gibt es Nginx 1.4 ..

        KZKG ^ Gaara sagte

      Ja, aber auf einem Server in der Produktion verwende ich nichts davon 😀

          Dhunter sagte

        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. ~ _ ~

            KZKG ^ Gaara sagte

          Ach komm schon, ist das ... auf den Servern, auf denen ich noch nie andere Repos, Backports oder ähnliches benutzt habe 🙂

          Raffael Castro sagte

        Immer stabil auf Servern, das habe ich vor Jahren gelernt.

            Dhunter sagte

          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

              Raffael Castro sagte

            Sie haben Recht mit dem, was Sie sagen, mein Hut ist ab.

     Chinoloco sagte

    Vielen Dank für das Teilen. Ich setze derzeit Ihren ältesten Beitrag in die Praxis um.
    Ich werde dich mit Fragen XD füllen

        KZKG ^ Gaara sagte

      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

          Gibran-Barrera sagte

        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.

            KZKG ^ Gaara sagte

          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.

     eliotime3000 sagte

    NGINX sieht im Vergleich zu Apache ziemlich einfach aus. Warten auf die nächste Episode, um sie mit PHP ergänzen zu können

     Mauritius sagte

    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.

        KZKG ^ Gaara sagte

      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 :)

     Kaiser sagte

    Vielen Dank für Ihren guten Beitrag.

     Apr4xas sagte

    Und der Leitfaden für Archlinux wann? xD

        KZKG ^ Gaara sagte

      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? 😀

     Apr4xas sagte

    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 😀

     Rhiz sagte

    Jo… xox, ich möchte nur einen internen Server, das heißt, ich möchte nur xampp ersetzen, sollte ich das alles tun?

        KZKG ^ Gaara sagte

      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 🙂

     Holger sagte

    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!

     Abraham sagte

    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.

     Lutz sagte

    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.

     Ricardo sagte

    Könnten Sie mir die Konfigurationsdateien mitteilen, da ich sie bitte nicht herunterladen kann?