Je construis une image avec un serveur Nagios. L'un des problèmes du Raspberry Pi est que la mémoire est assez petite sur le Raspberry Pi. Je vais donc utiliser une interface légère basée sur php-apc au lieu de l'interface standard.
Je me demandais quel serveur Web léger est recommandé d'utiliser?
J'envisageais un serveur Web minimum capable de faire du php et de fournir SSL. Je pensais à Apache2 ou Nginx. Bien que je pense qu'Apache surpassera toujours Nginx car le contenu est dynamique.
web-server
Lucas Kauffman
la source
la source
Réponses:
La vraie question ici est "Avez-vous besoin de toutes les fonctionnalités d'Apache?" (ou plus important encore, "Êtes-vous prêt à utiliser de la mémoire pour ces fonctionnalités?") - Vous pouvez compiler de façon personnalisée un Apache + mod_perl ou un mod_php TRÈS dépouillé pour exécuter votre interface Web Nagios (ou un apache Über-Stripped qui exécute simplement les CGI perl), mais même sous une forme minimaliste, Apache prendra probablement plus de mémoire que nginx pour faire le même travail - Il n'a tout simplement pas été conçu pour être petit.
Pour être sûr à 100%, vous voudrez peut-être faire un bake-off (compiler à la fois nginx et Apache et voir lequel mange moins de RAM), mais mon expérience sur les serveurs "normaux" me dit que nginx est probablement le meilleur choix pour une mémoire faible configuration: Vous abandonnez une partie de la flexibilité d'Apache, mais si vous n'en avez pas besoin de toute façon (et la plupart des sites ne le font pas ), vous ne remarquerez jamais la différence.
En termes de performances (temps), je doute que votre serveur Web vous limite - Tous les repères artificiels mis à part, si vous faites suffisamment de volume là où les performances du moteur de serveur distribuant les pages sont si critiques que vous allez probablement pour cuire votre Raspberry Pi (et vraiment, combien de personnes vont regarder vos données de surveillance en même temps? :-).
C'est à peu près un axiome que vous pouvez optimiser un système pour l'espace ou le temps, mais jamais les deux - et sur un espace Raspberry Pi est probablement votre contrainte limitante.
la source
powerful
(car c'est un terme non défini). J'ai ditflexible
(en faisant référence au nombre de façons dont le serveur principal sans système d'exploitation peut être configuré pour répondre à un besoin). Cela n'est pas censé mal se refléter sur les deux serveurs: les deux sont d'excellents morceaux de code, mais ils ont des objectifs de conception très différents. Apache est conçu pour être tout pour tout le monde - un camion dans lequel vous pouvez emballer toute votre maison. nginx est conçu pour être petit et rapide - une voiture de sport, mais vous ne pouvez pas emmener femme, enfants, beaux-parents et chien de famille avec vous.Nginx
J'ai de bonnes expériences avec Nginx en tant que serveur Web. Je ferais équipe avec un framework wsgi léger comme une bouteille ou un flacon pour un développement rapide d'application en Python.
Ne vous attendez pas à ce qu'il gère plus d'une dizaine de requêtes par seconde :)
Installation
Nginx est à la fois dans les référentiels Debian / Raspbian et Arch, il peut donc être installé avec une seule commande.
Cambre
Debian / Raspbian
Configuration
Il existe de nombreux exemples de configuration sur le Web et une explication détaillée dépasse probablement le cadre de cette question. Il existe de nombreux exemples sur le Wiki Nginx et la liste de diffusion est très utile.
Puisque vous avez mentionné PHP, vous serez très intéressé de savoir que le
/etc/nginx/nginx.conf
fichier standard contient un exemple PHP.la source
lighttpd
Un excellent serveur Web à faibles ressources est lighttpd , qui prend en charge PHP et SSL. Il semble fonctionner avec PHP sur un Raspberry Pi, et il est très possible de configurer lighttpd pour prendre en charge SecureHTTP .
la source
node.js
Vous pouvez utiliser node.js pour créer un serveur Web léger. Voir l'exemple suivant sur le site de tutoriel node.js:
Le code ci-dessus est un script java afin que vous puissiez écrire votre logique de génération de code dynamique dans un script java et commencer à l'utiliser en un rien de temps.
Vous devrez télécharger et configurer node.js à partir du lien: http: //nodejs.org/ pour Windows ou la plate-forme que vous préférez utiliser.
Démarrez le serveur Web à l'aide de la commande:
la source
Vous pouvez peut-être jeter un œil à ce que d'autres personnes ont utilisé sur les boîtes bas de gamme .
Fondamentalement, c'est lighttpd + php-fcgi. Lighttpd est vraiment léger et php-fcgi peut être configuré pour utiliser juste un peu de mémoire. Je l'ai installé sur une boîte VPS de 64 Mo (pas nagios, mais CMS).
De plus, je ne sais pas si vous devez également optimiser MySQL pour utiliser le moins de mémoire possible .
Cela peut vous aider, peut-être pas. Je n'ai pas encore commencé à utiliser mon Raspi :)
la source
Le serveur Mako et BarracudaDrive sont dérivés de la même source et ces deux serveurs peuvent fournir du contenu généré dynamiquement (en utilisant le langage de script Lua) 70% plus rapidement qu'Apache ne peut fournir du contenu statique. Les résultats de l'analyse comparative sont ici: http://barracudadrive.com/blog/2013/03/Apache-Nginx-Lighttpd-Monkey-and-BarracudaDrive-Speed-Test
Le serveur Mako peut être trouvé ici: http://makoserver.net/
la source
J'utilise une combinaison de Nginx / Passenger pour exécuter le pi.gadgetoid.com basé sur Ruby 24/7 sur un Raspberry Pi de 512 Mo. Cela surpasse considérablement la configuration Thin / Apache que j'utilisais auparavant. Il s'agit d'un site Web public à fort trafic, même si j'ai beaucoup triché en utilisant Cloudflare (un proxy de mise en cache essentiellement) pour gérer la majeure partie de ce volume.
Je suis à peu près sûr que cette configuration serait également confortable sur un Pi de 256 Mo, mais j'ai eu du mal à compiler les modules Passenger et Nginx; courir dans les limites de mémoire.
Je sais que ce n'est pas une solution PHP, et je serai probablement réprimandé pour avoir suggéré une telle réponse tangentielle; mais si vous cherchez le Pi pour repousser les limites de vos connaissances, et que vous le faites pour quelques bricolages occasionnels, je vous suggère fortement de regarder Ruby et Sinatra. Vous aurez une haine bouillonnante pour PHP dans quelques semaines.
Dans l'ensemble, vous n'aurez pas beaucoup de mal à exécuter une pile Web PHP / Apache sur un serveur de 256 Mo. Je l'ai fait pour des sites beaucoup plus grands à titre professionnel sur l'hébergement cloud. C'est lorsque MySQL s'implique que les choses deviennent laides. L'exécution d'une pile LAMP complète sur 256 Mo est pour le moins pénible, mais pas impossible pour les faibles volumes de trafic.
la source