Un nouveau serveur httpd : Ashd, A Sane HTTP Daemon

Posté par  . Modéré par tuiu pol.
Étiquettes :
25
22
sept.
2010
Linux
Ashd est un serveur HTTP conçu selon la philosophie Unix : simplicité et modularité. Ashd (A Sane HTTP Daemon) est écrit en langage C, sous licence GPLv3 et vient d'annoncer sa sortie officielle en version 0.1. Il se compose d'un ensemble de programmes simples ayant chacun un rôle bien déterminé. Ashd a été pensé selon 4 piliers fondateurs :
  • Une conception saine : en application directe de la philosophie UNIX, ashd est découpé en plusieurs programmes qui font une seule chose, mais le font bien
  • La sécurité : comme chaque processus ne fait qu'une seule chose, il est facile de restreindre ses droits au minimum dont il a vraiment besoin
  • Une configuration simple et sensée : chaque programme ayant une responsabilité limitée, il est facile de le configurer (les options en ligne de commande suffisent généralement)
  • La persistance : les processus sont persistants et peuvent ainsi garder des données de session en mémoire ou conserver des connexions vers des backends.

Ashd est composé des modules suivants :
  • htparser, pour écouter les connexions TCP et parler en HTTP avec les clients
  • dirplex, pour servir des fichiers depuis un répertoire (la réponse est déléguée à sendfile)
  • patplex, pour les règles de gestion virtuelle
  • sendfile, pour répondre aux clients avec un fichier et gérer les entêtes HTTP associés (content-type, last-modified, etc.)
  • callcgi, pour appeler des scripts CGI
  • userplex, pour servir les répertoires des utilisateurs à la /~user/ (ce programme est lancé avec l'utilisateur en question, ce qui évite les problèmes que l'on peut avoir avec apache qui tourne en www-data)...

Les pouvoirs magiques d'Unicorn 1.0.0

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
19
19
juin
2010
Ruby
Unicorn est un serveur applicatif HTTP en Ruby comparable à Mongrel ou à Thin, sous licence GPLv2. Il est utilisé notamment par Twitter et Github et vient d'atteindre la version 1.0.

Unicorn est compatible avec Rack, une interface entre les serveurs applicatifs et les frameworks. Il peut ainsi être utilisé pour servir des applications Ruby, dont celles écrites en Ruby on Rails. Il tourne avec Ruby 1.8, Ruby 1.9 et bientôt Rubinius. Rappelons que Rubinius est une implémentation alternative de Ruby dont la version 1.0 est sortie récemment.

Unicorn s'appuie au maximum sur les noyaux Unix pour éviter de réinventer la roue. Par exemple, la répartition des requêtes entre les différents processus se fait grâce à une socket partagée. Il est également possible de mettre à jour Unicorn, l'application ou l'interpréteur Ruby sans perdre la moindre connexion.

De même, Unicorn est optimisé pour servir des clients rapides. Il est donc très souvent utilisé derrière un reverse-proxy, qui pourra bufferiser les requêtes des clients lents.

A l'inverse, utiliser Unicorn pour des connexions longues comme du Comet (Comet désigne un ensemble de techniques où un serveur maintient des connexions HTTP ouvertes pour pouvoir pousser des contenus vers les clients) ou des websockets serait très inefficace, je vous conseille pour cela de regarder Rainbows : c'est un projet inspiré d'Unicorn qui vise justement à répondre à cette problématique particulère.

Présentation de nginx

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
21
17
juin
2010
Internet
Nginx est un reverse proxy et serveur web, ainsi qu'un proxy mail (IMAP et POP3), sous licence BSD. Igor Sysoev a commencé à le développer en 2002 pour un site russe à fort trafic, et depuis la popularité de nginx n'a cessé de croître. Selon netcraft, 6,5% des sites web dans le monde seraient servis par nginx.

Nginx est réputé pour ses performances et sa faible consommation mémoire. Cela vient de son architecture : au lieu de dédier un processus ou un thread pour traiter chaque requête, il utilise un modèle événementiel. Cela lui permet notamment de tenir un grand nombre de connexions simultanées sans voir sa consommation mémoire s'envoler. Des sites connus comme Wordpress, github et SourceForge l'ont choisi pour cette raison.

Nginx est également développé selon une approche modulaire : il est composé d'un cœur réduit et d'un grand nombre de modules que l'on peut choisir d'inclure à la compilation. Comme il est facile de développer un module, il en existe de nombreux et qui couvrent une large palette de fonctionnalités, des plus essentielles (SSL, fastcgi, gzip, rewrite, log) aux plus exotiques (servir des fichiers GIF vides, afficher des pages d'index aléatoires).

Si vous souhaitez télécharger nginx, 3 versions vous seront proposées : la branche 0.8 offre les dernières avancées, la branche 0.7 est la branche stable, et la branche 0.6 (legacy) est encore maintenue. La dernière version, sortie le 15 juin, est la 0.8.41. Vous pourrez l'installer sur Linux, BSD, Solaris, OSX ou encore Windows.

Journal Apache vs Cherokee / PostgreSQL vs MySql

Posté par  (site web personnel) .
Étiquettes :
7
20
avr.
2010
Bonjour Journal,

Question qui aurait pu être dans le forum, mais qui sera dans un journal, car non seulement la réponse mais aussi quelques éléments de ce billet peuvent intéresser du monde.

Vous connaissez tous le serveur Apache (version 2) [http://httpd.apache.org/] permettant, chez moi de faire tourner du PHP (Dotclear), du Python (Trac), du Perl (Mailman), des pages Statiques (Webalizer), SubVersion (ModSvn).

J’ai découvert il y a peu Cherokee [http://www.cherokee-project.com/], grâce à Linux Magazine. Apparemment, il (…)