Algumas razões importantes
- está escrito em Ruby (consulte http://github.com/ruby/ruby/tree/trunk/lib/webrick )
- Editado , não tem muitos recursos que um site de produção geralmente precisa, como vários trabalhadores (em particular, pré-bifurcação, gerenciamento de ciclo de vida, manuseio assíncrono, etc), redirecionamentos, reescrita, etc
Quando menciono redirecionamentos / reescritas, estou me referindo ao fato de que usando o Webrick, você tem que lidar com reescritas em uma camada diferente (Rack, Sinatra, Rails, código Webrick personalizado, etc). Isso requer que você gire "manipuladores" extras de ruby para executar seu código de reescrita. Para um site de baixo tráfego, isso pode ser bom, pois você pode ter processos pré-aquecidos sem fazer nada. No entanto, para um site de tráfego mais alto, isso é uma carga extra no servidor para algo que os servidores front-end (Apache, Nginx, etc) podem lidar sem girar Ruby *, e provavelmente ordens de magnitude mais rápido.
* por exemplo, se você estiver executando atrás de um balanceador de carga, poderá rotear todo o tráfego de reescrita para um servidor que não tenha o Ruby instalado e permitir que seus servidores principais gerenciem apenas o tráfego primário. Esse tráfego de reescrita pode ser devido a alterações do site para SEO ou algo semelhante. Outro caso seria um site que tem vários componentes, e talvez uma seção seja Rails, outra é PHP, e reescrita é necessária para ambos (ou seja, reescrever caminhos antigos de PHP para Rails)