So installieren Sie einen Webserver mit Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [1. Teil: Präsentation]

Vor nicht allzu langer Zeit haben wir das jetzt erwähnt DesdeLinux (alle seine Dienste) arbeiten in GNUTransfer.com-Server. Der Blog hat sich in Bezug auf Geschwindigkeit und Fluidität stark verbessert, selbst wenn wir nicht mehr (nach UsemosLinux zusammenführen) mehr als 30.000 Besuche pro Tag (fast 200 Benutzer gleichzeitig verbunden). Wie kann man trotz dieses Verkehrsaufkommens eine gute Serverleistung erzielen?

Derzeit verfügt Justice (VPS, wo sich das Blog und einige andere Dienste befinden) über 3 GB RAM. Es werden jedoch weniger als 500 MB verbraucht. Dies ist mit der richtigen Auswahl der zu verwendenden Software und einer angemessenen Konfiguration möglich. Zum Beispiel ist Apache zweifellos eine großartige Nummer auf der Welt, die Nummer 1 beim Hosting, aber genau aus diesem Grund ist Apache nicht immer die beste Option. Wenn der Datenverkehr hoch ist und die Serverhardware nicht wirklich groß ist (Beispiel: 8 oder 16 GB RAM), verbraucht Apache möglicherweise zu viel RAM, sodass der Server zu bestimmten Zeiten zu lange braucht, um zu antworten, oder schlimmer noch, dass unsere Site offline ist unzureichende Ressourcen. Aus diesem Grund wählen viele von uns Nginx gegenüber Apache.

Nginx:

Wir haben Ihnen bereits früher in diesem Artikel von Nginx erzählt Nginx: Eine interessante Alternative zu Apache, dort haben wir Ihnen gesagt, dass es sich um einen Webserver wie Apache, LightHttpd oder Cherokee handelt, aber im Vergleich zu Apache zeichnet er sich durch Leistung und geringen Hardwareverbrauch aus, genau deshalb viele große Websites wie Facebook, MyOpera.com, DropBox oder sogar WordPress .com verwenden Nginx anstelle von Apache. In der Welt von Linux DesdeLinux Es ist nicht das einzige, das Nginx verwendet. Soweit ich weiß, verwenden es 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).

PHP5:

PHP, diese Programmiersprache, mit der viele Websites (und CMS) heute arbeiten, ist meiner Ansicht nach das schwarze Schaf der Familie. Das heißt, meiner persönlichen Erfahrung nach verbrauchen große Websites mit einer großen Anzahl von Besuchen, mit vielen Optionen, Funktionen usw., wenn eine solche Website in PHP erstellt wird, mehr Ressourcen als eine ähnliche Website, die beispielsweise in RoR erstellt wurde. Meine Erfahrung war, dass Leute, PHP ist ein riesiger Ressourcendrache, PHP + Apache genug ist, um Hunderte und Hunderte von MB RAM ohne wirklichen Bedarf zu schlucken.

Der Grund, RoR, Django oder etwas anderes nicht zu verwenden, ist einfach dieser DesdeLinux (der Blog, unser Flaggschiff) arbeitet mit WordPress, einem mit PHP entwickelten CMS, das uns so viele Annehmlichkeiten bietet, dass wir kurz- oder mittelfristig einfach nicht vorhaben, es zu ändern, ehrlich gesagt, WordPress, auch wenn es nicht perfekt ist, dient uns für das, was wir brauchen und vielleicht noch mehr.

In Bezug auf PHP werde ich in diesen Tutorials die verwenden PHP Version 5.4.4-14 verfügbar auf Debian Wheezy (Stable)

Spawn_FastCGI:

Dies kann gesagt werden, dass es das ist, was Nginx mit PHP verbindet, das heißt, selbst wenn sie das PHP5-Paket installiert haben, wenn sie Spawn_FastCGI nicht installiert und ausgeführt haben, wenn sie eine Site in PHP öffnen, wird der Browser die Datei herunterladen, es wird ihnen nichts angezeigt, was der .php wurde programmiert, da der Server nicht weiß, wie .php-Dateien verarbeitet werden sollen. Daher ist es wichtig, Spawn_FastCGI zu installieren und zu konfigurieren.

Wenn wir Apache verwenden würden, wäre dies so einfach wie die Installation des libapache2-mod-php5-Pakets. Da wir jedoch Nginx verwenden, müssen wir stattdessen das spawn-fcgi-Paket installieren. Außerdem werde ich im Tutorial erklären, wie Sie in /etc/init.d/ ein erstes Skript dafür erstellen, damit Sie es bequemer steuern können.

MySQL:

Dies könnte das große Fragezeichen oder für einige vielleicht die nicht übereinstimmende Note sein. Viele, die ich kenne, werden mir die Frage stellen: Warum MySQL und nicht MariaDB verwenden?

Das Problem ist einfach, dass ich derzeit nicht genug Zeit habe, um mich einer Migration von MySQL zu MariaDB zu widmen, einer Migration, die theoretisch für alle transparent und zu 100 % mit allem kompatibel sein sollte, aber das ist... so Ich sagte, theoretisch. Damals begann ich mit Umzugsdienstleistungen DesdeLinux Von einem VPS zum anderen musste ich Apache hinter mir lassen und Nginx verwenden. Dies beinhaltete unterschiedliche Konfigurationsdateien, unterschiedliche Arten der Deklaration von VHosts sowie die Installation und Konfiguration des Servers und seiner Dienste von Grund auf. Zu diesem Zeitpunkt konnte ich keine weitere Aufgabe hinzufügen Um ehrlich zu sein, habe ich auch Apache gegen Nginx ausgetauscht, weil Apache meine Anforderungen nicht erfüllte. Da MySQL meine Anforderungen jedoch bisher zu 100 % erfüllt, sehe ich keinen Grund für mich, meine Arbeitsbelastung zu erhöhen, indem ich etwas ändere, das bereits funktioniert hat Technisch gut für mich.

Nachdem Sie erklärt haben, warum ich MariaDB nicht installiert habe, erklären Sie auch, dass die überwiegende Mehrheit der Websites eine Datenbank für ihren Betrieb benötigt, da dort viele Informationen (oder fast alle) gespeichert werden. Es gibt einige, die Postgre oder jemand anderen mögen. In dieser Reihe von Tutorials werde ich erklären, wie Installieren Sie MySQL und konfigurieren Sie separate Benutzer für jede Site.

La Die MySQL-Version, die ich verwenden werde, ist v5.5.31

APCs:

APC ist ein Optimierer für PHP (sehr einfach erklärt). Einmal richtig konfiguriert, ermöglicht es uns, dass die PHP-Verarbeitung besser funktioniert und die Antworten vom Server schneller sind.

Es gibt Alternativen wie Memcache, ich habe jedoch immer APC verwendet und sehr günstige Ergebnisse erzielt. Ich empfehle diesen Artikel auf Englisch zu lesen: Vergleich von APC und Memcache als lokaler Inhaltscache

Ich werde im Tutorial die Version von verwenden php-apc v3.1.13-1 auch in den Debian Stable Repos erhältlich.

Resumiendo:

Diese Art der Installation einer Konfiguration eines Webservers ist weder optimal noch viel weniger. Beispielsweise empfehlen viele Varnish, das nach dem, was ich gelesen habe, wahre Wunder bewirkt, weil alles oder fast alles zwischengespeichert ist, aber in unserem Fall brauchen wir das nicht 100% der Site wird immer zwischengespeichert, da wir nicht so extrem werden wollen oder müssen. Ich stelle jedoch klar, wie ich oben sagte: «Soweit ich gelesen habe», habe ich persönlich bis heute keinen Lack verwendet, daher kann ich Ihnen keine 100% objektive Meinung geben.

Dabei handelt es sich um eine Reihe von Tutorials, in denen ich Ihnen zeige, wie Sie einen Webserver wie den in dieser Minute gehosteten installieren. DesdeLinux (Blog, Forum, Einfügen usw.). Der Blog wird jeden Tag 30.000 Mal besucht, fast 200 Benutzer greifen gleichzeitig darauf zu, und dennoch werden nicht mehr als 500 MB RAM verbraucht. Für manche mag das ein übermäßiger Verbrauch sein, aber... hey, wir haben 3 GB RAM, also weniger als 500 MB (einschließlich). FTP-Dienst, SSH usw.) ist wirklich gut, oder? 🙂

Die ganze "Magie" wird nicht nur von Nginx + Spawn_FastCGI + APC ausgeführt, unser Blog-Cache-System ist wirklich gut konfiguriert und die Regeln für Nginx sind präzise. Dies macht das Blog selbst dann, wenn es viel Verkehr verarbeitet, viel weniger PHP als was üblich, da es schon viel zwischengespeichert hat. Wenn Sie eine stark nachgefragte Site haben und Ressourcenprobleme haben, empfehle ich ohne Zweifel, dass Sie untersuchen, welches Cache-System für Sie am besten geeignet ist und welches Ihren Anforderungen am besten entspricht.

Ich hoffe, Sie finden diese Tutorials interessant. In jedem von ihnen werde ich versuchen, alles umfassend, detailliert und so einfach wie möglich zu erklären.

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.

  1.   Bruno cascio sagte

    Sehr gut und klar! Ich gratuliere dir!

    1.    KZKG ^ Gaara sagte

      dank

  2.   Christoph Castro sagte

    Sehr gutes Tutorial.

    Was mich mit Zweifeln erfüllt, ist, wie sie den E-Mail-Server konfiguriert haben.

    1.    KZKG ^ Gaara sagte

      Der MailServer ist etwas Besonderes, das heißt, er hat, wie Sie wissen, nichts mit dem Webserver zu tun 🙂

      Vor langer Zeit habe ich mich jedoch entschieden, mich nicht mit dem MailServer zu komplizieren. Ich habe mich für iRedMail (Unterstützung für MySQL, LDAP und Postgre) entschieden. Mit den richtigen Einstellungen und Details, die ich in den Konfigurationsdateien hinzufüge, funktioniert alles einwandfrei.

  3.   rots87 sagte

    Ich mag den Artikel, ich warte auf die Artikelserie

    1.    KZKG ^ Gaara sagte

      Vielen Dank, ich hoffe, dass ich am Montag oder Dienstag den nächsten bringen kann, der sich mit der Installation und Konfiguration von Nginx befasst.

  4.   aca sagte

    Sehr gut, die richtige Konfiguration, es ist schwer zu finden, der Kompromiss zwischen den Faktoren ist manchmal fast unlösbar. Ich bin vor einiger Zeit auch zu Nginx und später zu Mariadb gegangen (vor kurzem, glaube ich vor einem Jahr).

    // Wie ich bereits erwähnt habe, wäre es schön, wenn Sie die Möglichkeit von Chroot ansprechen und den Proxy_Cache-Pfad verwenden würden, der ebenfalls nützlich ist. Auch der Vergleich des Sockets (falls dies möglich ist) mit dem Port. und definieren Sie gut die Anzahl der Kinder / Widder.

    Grüße

    1.    KZKG ^ Gaara sagte

      Vielen Dank für Ihren Kommentar 🙂
      Ja, natürlich wäre es sehr schön, Nginx einzusperren, um es als solches vom Rest des Systems zu trennen. Ich hatte diese Möglichkeit in diesen Tutorials nicht in Betracht gezogen. Ich werde sehen, was ich tun kann. Über den proxy_cache_path habe ich ihn noch nie benutzt. Ich werde ein bisschen darüber lesen, um zu sehen, wie es geht.

      In Bezug auf die Anzahl der Threads (min & max) ist dies in der Nginx-Konfiguration offensichtlich definiert. Im Nginx-Beitrag werde ich viel über die .conf-Datei 😉 sprechen

      Nochmals vielen Dank für Ihren Kommentar.

  5.   MSX sagte

    Diese Art von HowTos macht das Web für Informatiker wirklich leistungsfähig, da es uns Tonnen von Stunden an Recherche und Tests erspart, bis wir uns endgültig für die geeignete Option entscheiden. Vielen Dank!

    Eine Frage, läuft das auf Debian? Welche Version von Betriebssystem und Paketen?

    Viele Grüße!

    1.    KZKG ^ Gaara sagte

      Danke.
      In der Tat gibt es Websites, die berichten, die Nachrichten wiederholen und wiederholen, es gibt bereits zu viele ... Was benötigt wird, sind Websites, die Tutorials enthalten, genau das braucht das Web!

      Ja, Debian Wheezy (aktueller Stall), die Versionen der Pakete sind genau dort in der Post 😉

  6.   eliotime3000 sagte

    Hervorragender Kommentar. Mal sehen, ob ich mit ZPanel X eine Art Errata mache und übrigens die Installation manuell in Debian Wheezy mache.

  7.   Federico Antonio Valdes Toujague sagte

    Mach weiter, KZKG ^ Gaara !!!, das beste Kriterium der Wahrheit ist die Praxis, und du hast Erfahrung mit dem, was du schreibst. Eine professionelle und funktionierende Website. Major League Baseball, Alter.

    1.    eliotime3000 sagte

      Das ist richtig. Als ich anfing, mit den in Windows installierten Webservern zu spielen, ist die Wahrheit, dass Apache in Bezug auf den Ressourcenverbrauch in die Höhe schießt, wenn Sie WordPress verwenden (in Drupal hat es die Hälfte der Ressourcen verbraucht).

  8.   Wagen sagte

    Ich denke, dass dieses Tutorial für den Nginx-Teil nützlich sein wird. Jetzt möchte ich einen Server mit Nginx, PHP, Varnish und MariaDB installieren. Aber natürlich muss man anfangen, und Faulheit kann viel bewirken, wenn es darum geht, mit Servern zu kämpfen, und im Moment bin ich mit der typischen Lampe und dem Memcache, die ich über xDD habe, zufrieden.

    Ein Gruß.

  9.   auroszx sagte

    Großartig, nur eines davon würde sich als nützlich erweisen. Ein anderes freut sich darauf.

  10.   Ivan Gabriel Sosa sagte

    Wir folgen dir. Wir beginnen derzeit in der Welt der Webserver. Wir haben zwei von Hostinger gekauft und ein Freund hat uns geholfen, sie von Grund auf neu zu konfigurieren (PHP, MySQL, Apache). Es ist die einzige Kombination, die unter Linux verwendet wird, einer Plattform, auf der ich seit Januar bin.
    Aber ich war sehr interessiert an diesem Thema. Prost!

  11.   Jose Manuel sagte

    Ich habe noch nie einen Webserver installiert, aber wenn ich es tun möchte, eine Frage, wird das Niveau, das erforderlich ist, um die Tutorials zu verstehen und die Installation durchzuführen, hoch sein oder könnte ich es mit Grundkenntnissen versuchen? Danke im Voraus.

    1.    eliotime3000 sagte

      Die Wahrheit ist, dass es nicht viel Wissen erfordert, um mit einem Datenbankserver umgehen zu können. Einer, der diese Erfahrung bereits ausprobiert hat, sagt es Ihnen.

  12.   Mauritius sagte

    Hallo, das ist sehr gut, was du mit dieser Reihe von Beiträgen machen wirst.

    Ich habe kürzlich Nginx + Php Fastcgi + Mariadb installiert. Nginx.

    All dies habe ich in Archlinux getan, weil diese Distribution aus meiner Sicht die einzige ist, die nicht so viele Leckereien bringt wie die anderen. Ich habe es in eine Käfigumgebung gestellt und es hat mir sehr viel Unannehmlichkeiten bereitet, wenn es perfekt funktioniert.

    Jetzt funktioniert es perfekt. Obwohl ich daran interessiert bin, Ihre Meinungen über die Prozesse von Kindern und Vätern zu erfahren, ist es umso besser, je mehr Tipps Sie mir geben.

    All dies ist nur zum Üben.
    Das Gerät verfügt über 4 GB DDR2-RAM und einen 2-GHz-Core-2.4duo-Prozessor.

    Grüße und ich freuen uns auf die kommenden Beiträge dieser Serie.

  13.   kas sagte

    200 Benutzer gleichzeitig verbunden?
    Nur zu bestimmten Tageszeiten, oder? Denn sonst würde es diese 30.000 täglichen Besuche überschreiten.

    1.    KZKG ^ Gaara sagte

      Ja, natürlich sind nicht immer 200 Leute online, in diesem Moment sind es fast 40, weil es noch früh ist, in ein paar Stunden werden sie 100 überschreiten.

  14.   Dhunter sagte

    Nur zum Spaß habe ich gerade auf meiner Workstation (derzeit Symfony2) von Lighty auf Nginx umgestellt. Ich habe die Conf von hier [1] genommen, sehr einfach.

    [1] http://ihaveabackup.net/2012/11/17/nginx-configuration-for-symfony2

  15.   Apr4xas sagte

    Warten auf die Fortsetzung dieses 😀

    1.    KZKG ^ Gaara sagte

      Diese Woche muss ich es veröffentlichen, danke, dass du uns gelesen hast 🙂

      1.    Krankenversicherung sagte

        Y? fehlt viel?

  16.   Dekan sagte

    Guter Post…

  17.   NOEL IWAN sagte

    GUTEN ABEND.
    Aufgrund der Spezifikationen eines Schulprojekts lassen sie mich NGINX in OPENBSD 5.4 in ORACLE MV VIRTUALBOX installieren, um PHP, MYSQL und andere Nadamas verwenden zu können, die ich in Bezug auf die oben genannten Informationen nicht gefunden habe IST PROBLEM FÜR MICH OBEN.