Ich erstelle ein Image mit einem Nagios-Server. Eines der Probleme des Himbeer-PIS ist, dass der Speicher des Himbeer-PIS ziemlich klein ist. Daher verwende ich ein leichtes Interface, das auf PHP-Apc basiert, anstelle des Standard-Interfaces.
Ich habe mich gefragt, welcher leichtgewichtige Webserver empfohlen wird?
Ich dachte über einen minimalen Webserver nach, der PHP kann und SSL bereitstellt. Ich dachte an Apache2 oder Nginx. Obwohl ich denke, dass Apache Nginx immer noch übertreffen wird, da der Inhalt dynamisch ist.
web-server
Lucas Kauffman
quelle
quelle
Antworten:
Die eigentliche Frage lautet hier: "Benötigen Sie alle Funktionen, die Apache bietet?" (oder noch wichtiger: "Sind Sie bereit, Speicher für diese Funktionen zu verbrauchen ?") - Sie können einen SEHR reduzierten Apache + mod_perl oder mod_php individuell kompilieren , um Ihr Nagios-Webinterface (oder einen überstrippten Apache) auszuführen läuft nur mit den Perl-CGIs), aber selbst in einer minimalistischen Form benötigt Apache wahrscheinlich mehr Speicher als Nginx, um den gleichen Job zu erledigen - es war einfach nicht klein gebaut.
Um 100% sicher zu sein, möchten Sie vielleicht ein Bake-Off durchführen (kompilieren Sie sowohl Nginx als auch Apache und sehen Sie, welcher weniger RAM verbraucht), aber meine Erfahrung auf "normalen" Servern zeigt, dass Nginx wahrscheinlich die bessere Wahl für einen niedrigen Arbeitsspeicher ist Konfiguration: Sie geben einen Teil der Flexibilität von Apache auf, aber wenn Sie das sowieso nicht benötigten (und die meisten Sites nicht ), werden Sie den Unterschied nie bemerken.
Leistung (zeitlich) Ich bezweifle, dass Sie von Ihrem Webserver eingeschränkt werden - abgesehen von allen erfundenen Benchmarks, wenn Sie genug Volumen tun, wo die Leistung der Server-Engine, die die Seiten verteilt, so kritisch ist, dass Sie wahrscheinlich gehen um deinen Raspberry Pi zu backen (und wirklich, wie viele Leute werden auf einmal auf deine Überwachungsdaten schauen? :-).
Es ist so ziemlich ein Grundsatz, dass Sie ein System räumlich oder zeitlich optimieren können, aber niemals beides - und auf einem Raspberry Pi ist der Platz wahrscheinlich Ihre einschränkende Einschränkung.
quelle
powerful
(weil es ein undefinierter Begriff ist). Ich sagteflexible
(unter Bezugnahme darauf, wie viele Möglichkeiten der Bare-Bones-Core-Server konfiguriert werden kann, um eine Anforderung zu erfüllen). Dies soll auf keinem der beiden Server schlecht wiedergegeben werden: Beide sind hervorragende Codeteile, haben jedoch ganz unterschiedliche Entwurfsziele. Apache ist so konzipiert, dass alles für alle Menschen möglich ist - ein LKW, in den Sie Ihr gesamtes Haus packen können. nginx ist so konzipiert, dass es klein und schnell ist - ein Sportwagen, aber Sie können Frau, Kinder, Schwiegereltern und Familienhund nicht mitnehmen.Nginx
Ich habe einige gute Erfahrungen mit Nginx als Webserver gemacht. Ich würde es mit einem leichten wsgi- Framework wie bottle oder flask kombinieren, um eine schnelle Anwendungsentwicklung in Python zu ermöglichen.
Erwarten Sie jedoch nicht, dass es mehr als 10 Anfragen pro Sekunde bearbeitet :)
Installation
Nginx befindet sich sowohl im Debian / Raspbian- als auch im Arch-Repository und kann daher mit einem einzigen Befehl installiert werden.
Bogen
Debian / Raspbian
Aufbau
Im gesamten Web gibt es zahlreiche Konfigurationsbeispiele, und eine ausführliche Erklärung würde wahrscheinlich den Rahmen dieser Frage sprengen. Es gibt viele Beispiele im Nginx-Wiki und die Mailingliste ist sehr hilfreich.
Da Sie PHP erwähnt haben, sind Sie sehr daran interessiert zu wissen, dass die Standarddatei
/etc/nginx/nginx.conf
ein PHP-Beispiel enthält.quelle
lighttpd
Ein großartiger ressourcenarmer Webserver ist lighttpd , der sowohl PHP als auch SSL unterstützt. Es scheint mit PHP auf einem Raspberry Pi zu funktionieren , und es ist sehr gut möglich, lighttpd so zu konfigurieren, dass es SecureHTTP unterstützt .
quelle
node.js
Sie können node.js verwenden, um einen Light-Waight-Webserver zu erstellen. Beachten Sie das folgende Beispiel auf der Tutorial-Site von node.js:
Über dem Code befindet sich Java-Skript, sodass Sie Ihre dynamische Code-Generierungslogik in Java-Skript schreiben und in kürzester Zeit verwenden können.
Sie müssen node.js von folgender Adresse herunterladen und einrichten: http: //nodejs.org/ für Windows oder eine andere Plattform, die Sie bevorzugen.
Starten Sie den Webserver mit folgendem Befehl:
quelle
Vielleicht können Sie einen Blick darauf werfen, was andere Leute für Low-End-Boxen verwendet haben .
Grundsätzlich ist es lighttpd + php-fcgi. Lighttpd ist wirklich leicht und php-fcgi kann so konfiguriert werden, dass es nur wenig Speicherplatz benötigt. Ich habe es auf einer 64 MB VPS-Box eingerichtet (nicht Nagios, aber CMS).
Ich weiß auch nicht, ob Sie auch MySQL optimieren müssen, um so wenig Speicher wie möglich zu nutzen .
Es kann Ihnen helfen, es kann nicht. Ich muss meinen Raspi erst noch benutzen :)
quelle
Der Mako Server und BarracudaDrive stammen aus derselben Quelle, und diese beiden Server können dynamisch generierten Inhalt (mithilfe der Lua-Skriptsprache) 70% schneller bereitstellen als Apache statischen Inhalt. Die Benchmarking-Ergebnisse finden Sie hier: http://barracudadrive.com/blog/2013/03/Apache-Nginx-Lighttpd-Monkey-and-BarracudaDrive-Speed-Test
Der Mako Server ist hier zu finden: http://makoserver.net/
quelle
Ich verwende eine Kombination aus Nginx und Passenger, um den Ruby-basierten pi.gadgetoid.com rund um die Uhr auf einem 512-MB-Raspberry-Pi auszuführen. Dies übertrifft das zuvor verwendete Thin / Apache-Setup drastisch. Dies ist eine relativ stark frequentierte, öffentliche Website, obwohl ich viel mit Cloudflare (einem Caching-Proxy) betrogen habe, um den größten Teil dieses Volumens zu bewältigen.
Ich bin mir ziemlich sicher, dass diese Konfiguration auch auf einem 256-MB-Pi bequem sitzen würde, aber ich hatte Probleme beim Kompilieren der Passenger-Module und von Nginx. Laufen in Speicherbeschränkungen.
Ich weiß, dass es keine PHP-Lösung ist, und ich werde wahrscheinlich beschimpft, wenn ich eine solche tangentiale Antwort vorschlage. Aber wenn Sie nach dem Pi suchen, um die Grenzen Ihres Wissens zu erweitern, und dies für gelegentliches Basteln tun, empfehle ich Ihnen dringend, sich mit Ruby und Sinatra zu befassen. Sie werden in ein paar Wochen einen schwindelerregenden Hass auf PHP haben.
Im Großen und Ganzen werden Sie keine großen Probleme haben, einen PHP / Apache-Webstack auf einem 256-MB-Server auszuführen. Ich habe dies für viel größere Websites in einer professionellen Funktion auf Cloud-basiertem Hosting durchgeführt. Wenn sich MySQL einmischt, werden die Dinge hässlich. Das Ausführen eines vollständigen LAMP-Stacks mit 256 MB ist schmerzhaft, aber bei geringem Datenverkehr nicht unmöglich.
quelle