Quelques raisons importantes
- il est écrit en Ruby (voir http://github.com/ruby/ruby/tree/trunk/lib/webrick )
-
Modifié il ne dispose pas de nombreuses fonctionnalités dont un site de production a généralement besoin, comme les travailleurs multiples (en particulier, le pré-forking, la gestion du cycle de vie, la gestion asynchrone, etc.), les redirections, la réécriture, etc.
Lorsque je mentionne les redirections/réécritures, je fais référence au fait qu'en utilisant Webrick, vous devez gérer les réécritures à une couche différente (Rack, Sinatra, Rails, code Webrick personnalisé, etc). Cela vous oblige à créer des "handlers" ruby supplémentaires pour exécuter votre code de réécriture. Pour un site à faible trafic, cela peut convenir car vous avez peut-être déjà des processus préchauffés qui ne font rien. Cependant, pour un site à fort trafic, c'est une charge supplémentaire sur le serveur pour quelque chose que les serveurs frontaux (Apache, Nginx, etc.) peuvent gérer sans faire tourner Ruby*, et probablement beaucoup plus rapidement.
* par exemple, si vous fonctionnez derrière un équilibreur de charge, vous pouvez acheminer tout le trafic de réécriture vers un serveur sur lequel ruby n'est pas installé, et laisser vos serveurs principaux gérer uniquement le trafic primaire. Ce trafic de réécriture peut être dû à des changements de site pour le référencement, ou quelque chose de similaire. Un autre cas serait un site qui a plusieurs composants, et peut-être une section est Rails, une autre est PHP, et les réécritures sont nécessaires pour les deux (c'est-à-dire réécrire les anciens chemins PHP vers Rails).