2010-08-14 10 views
7

¿Cuál es el servidor de rieles ideal? Supongamos que está en un VPS, como Linode. Supongamos que cualquiera de los sitios no se convertirá en el próximo twitter, pero deberían escalar bien. También debe admitir sitios múltiples y todos los sitios son rails 3. Y la base de datos debe estar en el mismo servidor (por ahora).Servidor Ideal Rails

¿Debería usar apache o nginx?

Ruby Enterprise Edition o simplemente Ruby normal?

Ideal linux distro?

MySQL, PostgreSQL u otra cosa?

¿Cómo se deben diseñar los directorios (dónde poner los sitios de sus raíles o cualquier otra cosa)?

Opciones de despliegue?

¿Algo más?

Respuesta

14

¿Debería usar apache o nginx? Nginx parece ser la ruta preferida aquí, a menos que necesite funciones específicas de Apache. Si está utilizando Passenger, se admiten tanto Apache como Nginx. Más sobre Pasajero here.

Ruby Enterprise Edition o simplemente normal Ruby? Estoy bastante seguro de que REE solo está disponible para Ruby 1.8, que ya no es la versión preferida de Rails 3. Rails 3 tuvo algunos problemas con 1.8, pero podrían haberlos solucionado ahora. En general, sin embargo, Ruby 1.9.2 ejecuta Rails 3 bien.

Ideal linux distro? Esto realmente no importa. Si no está seguro, Ubuntu es una buena opción ya que hay mucho conocimiento por ahí, y es bastante fácil de usar. Slicehost tiene un montón de excelentes artículos sobre cómo comenzar con un VPS, y muchos de ellos se centran específicamente en Ubuntu: http://articles.slicehost.com/.

MySQL, PostgreSQL u otra cosa? Esto es definitivamente subjetivo. MySQL es definitivamente el más común que existe, y si realmente no está seguro, es un buen punto de partida. Sin embargo, las personas a menudo argumentan que PostgreSQL es más limpio y más fácil de usar que MySQL. Si recién está comenzando, recomendaría MySQL solo por la cantidad de información que existe.

¿Cómo se deben diseñar los directorios (dónde poner los sitios de sus raíles o cualquier otra cosa)? Puede poner su proyecto de rieles en cualquier lugar que desee, por lo que me gusta simplemente ponerlo en mi directorio personal. Solo asegúrate de que tu servidor web tenga acceso a tus recursos estáticos.

Opciones de despliegue? Capistrano es popular. Usted solo confirma sus cambios y cap deploy, y estará en funcionamiento.

¿Algo más? Si todo esto parece abrumador, busque una solución más simple como Heroku. Lo preparan todo para ti, y mientras pierdes algo de flexibilidad, no tendrás que preocuparte por nada de esto. Su precio no es tan malo, y ofrecen una opción gratuita.

3

Creo que kyl lo resumió bastante bien. Pero pensé que te dejaría saber exactamente lo que he estado usando desde los rieles beta4 (y ahora con RC). Esta configuración me ha funcionado bien:

Rackspace Cloud servers - Le da control total del servidor. Puede cambiar el tamaño de sus servidores sobre la marcha. También puede tomar imágenes instantáneas si desea duplicar su configuración para otro sitio. Es barato y, en mi opinión, mejor que la nube de Amazon.

CentOS 5.4 - sólido, pero como se menciona en kyl probablemente cualquier distribución funcionará bien.

Ruby 1.9.2RC 2 - sin problemas hasta ahora en Rails 3 para mí. Definitivamente usará Ruby Enterprise cuando lo porten a 1.9.2 (no estoy seguro si eso está en proceso, ¿no?)

Nginx - rápido y liviano. Me gusta mucho mejor que apache. Funciona bien en frente del pasajero, mestizo y delgado.

MySQL - solo preferencia personal para esto. Lo he estado usando por años. Es fácil configurar una configuración maestro/esclavo o maestra/maestra si necesita escalar. Algunas personas tienen éxito simplemente usando sqlite, pero prefiero algo un poco más robusto.

Github - imprescindible para el control de código fuente. Bundler funciona muy bien con github

Servidor de aplicaciones - Todavía estoy debatiendo qué hacer al respecto. Estaba contento con Passenger 2.2.15 hasta que vi cuánto tiempo tardó en generar nuevos procesos de ruby ​​para manejar la concurrencia. Tarda hasta 30 segundos en generar un nuevo proceso para mí y la aplicación está bloqueada, por lo que ninguna solicitud puede pasar mientras está en reproducción. Estoy investigando ahora mismo si es mi aplicación o Rails 3 lo que demora tanto en cargar. Este problema se corrigió con Passenger 3, sin embargo. Esperemos que sea lanzado pronto. Como resultado de esto, probablemente voy a utilizar Thin o Mongrel hasta que salga el Passenger 3.

Capistrano - funciona muy bien para Rails 3. Recomiendo encontrar algunas recetas de tapa para versionar su aplicación con etiquetas git ... o simplemente escriba la suya.

¿Algo más? No está realmente relacionado con el servidor, pero recomendaría usar la nueva API de complemento para cualquier parte de la aplicación que sea reutilizable. Lea sobre las railties y los motores. Es simple crear una gema con Joyero y versionarla con github utilizando tareas de rastrillo de joyería. A continuación, puede implementar desde una etiqueta github o desde el maestro, agregando la fuente gem y github en su Gemfile y la instalación o actualización del paquete. Hace poco porté todo el código de mi aplicación común (blog, autenticación, etc.) a los motores Rails 3 y está funcionando muy bien. Y cada vez que necesito reutilizar ese código, simplemente lo dejo en el archivo de gemas de la nueva aplicación.

Cuestiones relacionadas