Webrick como servidor de producción vs Delgados o Unicornio?

Parece que se da por sentado que usted no debe utilizar Webrick como servidor de producción, pero realmente no puedo encontrar en cualquier lugar mencionando por qué. El consenso parece ser:
«Webrick está ok para el desarrollo, pero Delgada o Unicornio es la opción para la producción, período.»

Me hizo mirar hacia arriba Delgada servidor de la página de inicio y se habla de las peticiones/segundo, pero realmente no entiendo el gráfico, ya que no hay anotación.

Puede alguien que me sé por qué debo utilizar Delgada o Unicornio en comparación con Webrick? También tiene algún beneficio para el uso de Webrick para el desarrollo? He estado usando Webrick ya que viene con rails, y creo que no debería ser una razón por la que es por defecto.

Estoy usando Heroku por el camino.

  • Su lento cuando se compara con otros como Mestiza.
  • Ken, yo realmente no se preguntó esta cuestión a debatir nada. Yo realmente quiero saber la respuesta porque no podía encontrar estadísticas reales en cualquier lugar, cuando todo el mundo está dando por sentado Webrick es inferior. No estoy afiliada con ninguna de las partes y los debates a los que usted ha mencionado son preguntas que yo estoy pidiendo una genuina curiosidad. ¿Cómo puedo reformular la pregunta para que no se vean de esa manera?
  • No estoy seguro de que usted puede. 🙂 La pregunta no es realmente una pregunta – ¿por qué usted no debería usar una herramienta diseñada para una configuración rápida y fácil para el desarrollo como una verdadera herramienta de producción debe ser muy clara, sin necesidad de explicación. «¿Por qué no puedo confiar en mi número de tarjeta de crédito a un sitio seguro, mi amigo inventado para mí tratar?» – software diseñado estrictamente para el desarrollo no debe ser utilizado en la producción, ya que no está probado para su uso, no están diseñados para ese uso, y no’ se espera que el trabajo para ese uso. Los elefantes y los aviones no se pueden comparar, con o sin stats.
  • Esta es una buena pregunta.
  • Ya sea que es un abierto de preguntas de discusión, o hay una muy obvia respuesta. Usted no puede tener las dos formas.
  • Es una pregunta de discusión (leer el título de la pregunta en sí misma). También los seis meses de edad, pero gracias por tu comentario, de todos modos.
  • Preguntas como esta NO debe ser cerrado. Son útiles. Todos los auto-nombrados contenido de la policía debe retroceder.
  • He encontrado esto buscando en google «¿por Qué no utilizar WEBrick en la producción?», porque es una pregunta que yo quiero la respuesta. No me refiero a usar WEBrick en la producción, pero me resulta molesto que todo el mundo dice, «Porque no es Para la Producción®, obviamente.» Realmente no es obvio—si lo fuera, la gente no estaría investigando la cuestión antes de que finalmente preguntar en StackOverflow, como @Vlad indica que él hizo. El aceptó respuesta es útil; al menos señala algunas características que faltan. Tangencialmente, insistiendo en que una cuestión de ser cerrado porque creo que es discutible sin proporcionar su propia respuesta no es útil.

InformationsquelleAutor Vlad | 2012-06-02

5 Kommentare

  1. 41

    Un par de razones importantes

    1. está escrito en Ruby (ver http://github.com/ruby/ruby/tree/trunk/lib/webrick)
    2. Editado no tiene muchas de las características que un sitio web de producción por lo general se necesita, como varios de los trabajadores (en particular, el pre-que se bifurcan, gestión del ciclo de vida, asincrónico de manejo, etc.), redirecciones, reescritura, etc

    Cuando menciono redirige/vuelve a escribir, me estoy refiriendo al hecho de que el uso de Webrick, usted tiene que manejar vuelve a escribir en una capa diferente (Rack, Sinatra, Rieles, personalizada Webrick código, etc). Esto le obliga a girar extra ruby «controladores» para realizar su reescribir el código. Para una baja de tráfico del sitio, esto puede estar bien como usted puede tener pre-calentado procesos de no hacer nada ya. Sin embargo, para un mayor tráfico de sitio, esto es una carga adicional en el servidor para algo que los servidores de aplicaciones (Apache, Nginx, etc) puede manejar sin girando hasta Ruby*, y probablemente órdenes de magnitud más rápido.

    * por ejemplo, si usted está corriendo detrás de un equilibrador de carga, se puede enrutar todos los reescribir el tráfico a un servidor que no tiene ruby instalado, y deje que su principal sólo los servidores de administrar el principal tráfico. Esta reescritura de tráfico puede ser debido a cambios en el sitio para SEO, o algo similar. Otro caso sería un sitio que tiene varios componentes, y tal vez una sección es de Rieles, otro es el PHP, y vuelve a escribir se necesita para ambas (es decir, reescribir viejo PHP rutas de acceso a los Rieles)

    • No es posible utilizar delayed_job para manejar múltiples trabajadores en Heroku, independientemente de que server usas?
    • También, estoy utilizando el Webrick y han sido el uso de redirecciones. Ahora estoy confundido…
    • Sí, delayed_job no está relacionado con Webrick, a menos que su empleo el uso de Webrick Api (que es sinceramente un código de olor como de las parejas).
    • Me estoy refiriendo a redirige fuera de el Rubí de la pila. Como mod_rewrite estilo de redirecciones. Técnicamente, usted puede redirigir dentro de Rack, o los Rieles, o, tal vez incluso Webrick (puedo estar equivocado), pero que requiere de partida rubí, que es relativamente lento vs Apache o Nginx
    • Su lógica es errónea. 1.) Varios trabajadores no siempre significa mejor. Asincrónico de los trabajadores, aunque (también conocido como el uso de Unicornio w/ Apache Evento,) se debe tener elaborado que. 2.) Puede redirigir en Webrick a través de Rack, Sinatra o a los demás, de la gente. Usted puede volver a escribir a través de Rack, Sinatra o los Rieles o a los demás, de la gente. En su último comentario, es que no tiene sentido, usted necesita para empezar a Ruby, independientemente de la utilización de Apache o Nginx, ¿de qué otra manera se puede servir un Rubí sitio? Voy a usar Python para analizar Ruby? A menos que usted use jRuby. Yo no uso Webrick en la producción, just sayin’.
    • 1) nunca he dicho a varios trabajadores era mejor, sólo que a menudo era necesario. 2) he editado para que quede más clara. La esperanza que hace que sea más claro para usted
    • usted puede girar hasta varios trabajadores con Webrick, usted simplemente no puede girar con un rápido disparo como usted puede con fina o unicornio, y no async como he mencionado antes (pero tampoco Delgada-último recuerdo) /, en la Mayoría de los programadores Ruby diseñar sus aplicaciones para multi-desove donde el desove es independiente del método de desove. AKA guardar sesiones en Redis, Memcached, DB o en otros lugares. Yo también creo que es imperfecto a tener su equilibrador de manejo de la lógica de la aplicación, como si se va a reducir la sobrecarga mucho desde que deje de procesamiento para la redirección. Leer: Async.
    • Unicornio también está escrito en Ruby
    • github.com/defunkt/unicorn/tree/master/ext/unicorn_http una gran parte de Unicornio es en C

  2. 4

    WEBrick también no puede manejar más URI, si superan 2083 caracteres verás un accidente. Delgado no tiene estos problemas, lo que hizo superior – ya en desarrollo.

    • También Webrick perdido la conexión y el auto se apaga cuando por mi experiencia, estoy en desarrollo de software y cuando yo he elegido WeBRICK en Heroku PaaS, la auto-apague son compensados por la alta velocidad de auto-activar (despedido automáticamente a través de la arquitectura de Heroku)
  3. 3

    Que no me gusta complicar las cosas simples y la optimización. WEBrick puede ser utilizado en producción siempre es más bien una baja en el tráfico de sitio web. La mayoría de las aplicaciones.

    Si su sitio tiene algo que toma tiempo, por ejemplo, envía e-mails o genera archivos PDF, usted debe hacer WEBrick multi-threaded. Desea manejar múltiples peticiones a la vez.

  4. 1

    Ha tenido algunos problemas de seguridad en el pasado, pero parece que la gran razón es que es muy lento en comparación con los servidores a los que están destinados para la producción.

    • Has visto una estadística de comparación? También he oído a gente decir que (y probablemente sea cierto), pero no puede encontrar realmente una verdadera stat comparación en cualquier lugar en la web…
    • No creo que nadie realmente puntos de referencia Webrick porque no está pensado para ser un servidor de producción. Unicornio, Delgada o de Pasajeros están bien soportados y mucho mejores opciones
  5. 0

    La mayor debilidad de webrick cuando se ejecuta en el modo de producción es que es de un solo subproceso, solo proceso servidor web, lo que significa que es capaz de servir a una sola petición http a un tiempo.

    • No es de un solo subproceso. O es en la misma medida que cualquier moderno lenguaje de script es implemted (con un GIL). Pero la base de datos de acceso de e / s y en webrick es totalmente multiproceso.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea