www servidor rails que online ruby-on-rails ruby-on-rails-3 vps

ruby on rails - que - ¿Cómo implementar una aplicación de Rails en un VPS(o servidor dedicado)?



vps heroku (2)

¿Cómo puedo implementar una aplicación Rails en un VPS (servidor privado virtual) o en un servidor dedicado? Sería bueno tener una guía fácil de seguir.

Conozco las secuencias de comandos para automatizar el proceso, pero creo que es mejor tener todo bajo control para comprender mejor el proceso.


Implementé mi aplicación de rieles en mis servidores de producción (es un clúster) con Capistrano antes, pero descubrí que Capistrano es un poco complejo y, a veces, incluso se convirtió en un alborotador ... Así que escribí mi guión de implementación por bash shell script.

Lo puse en github con una breve guía: deploy_rails


Implementé con éxito una aplicación pesada de Rails en Linode u Ocean Digital, utilizando estas tecnologías:

  • rbenv para la instalación de Ruby
  • nginx + Pasajero para el servidor de aplicaciones
  • PostgreSQL para el servidor de la base de datos
  • Capistrano para automatizar las implementaciones (configúrelo primero en su máquina de desarrollo con las configuraciones y la IP de su servidor, no lo cubriré aquí)

Estos son los pasos que funcionan para mí:

Configurando la máquina virtual

Crea una nueva máquina virtual

Siga las instrucciones de configuración de su hosting, como Linode u Digital Ocean, para crear el nodo y configurarlo.

Configurar la fecha

  • dpkg-reconfigure tzdata

Actualizar paquetes

  • actualización apt-get
  • actualización apt-get

Seguridad

Crear usuario

  • adduser deploy
  • usermod -a -G sudo deploy
  • cerrar sesión

Configurar la autenticación de clave SSH

En local:

En el servidor:

  • ssh [email protected]
  • habilitar el alias para listar archivos:
    • vim ~ / .bashrc
    • descomentar todos los alias
  • mkdir .ssh
  • mv id_rsa.pub .ssh / authorized_keys
  • chown -R deploy: deploy .ssh
  • chmod 700 .ssh
  • chmod 600 .ssh / authorized_keys
  • cierre de sesión (prueba la nueva autenticación)

Configurar SSH

  • sudo vim / etc / ssh / sshd_config
  • Cambiar PermitRootLogin a no
  • sudo service ssh restart

Configurar el firewall

Configurar fail2ban

Configure si tiene suficiente memoria libre, ya que tiende a comérselo.

  • sudo apt-get install -y fail2ban

Configurar Ruby

Instalar Git

  • sudo apt-get install -y git

Instalar rbenv

Instalar Ruby

  • sudo apt-get install -y curl gnupg build-essential
  • rbenv install -l (busque la última versión)
  • rbenv install 2.3.3 (o la última versión disponible en este momento)
  • rbenv global 2.3.3
  • rbenv rehash
  • vim .gemrc
    • Pega esto: gema: --no-documento

Configurar servidores

Instalar nginx + pasajero

Instalar PostgreSQL

Bibliotecas de configuración

Instalar node.js

Necesario para precompilar los activos.

  • sudo apt-get install -y nodejs

Instalar el paquete

  • obtener el paquete de instalación
  • rbenv rehash

Configura la aplicación

Crear el usuario en PostgreSQL

  • nombre de usuario de createuser --pwprompt
  • createdb -Ousername -Eutf8 db_name
  • Pruébalo:
    • psql db_name --user nombre de usuario --password

Implemente el código * En el servidor: * sudo mkdir -p /srv/yoursite.com * sudo chown deploy: deploy /srv/yoursite.com * En su máquina de desarrollo: * bundle exec cap production deploy: check (arrojará un error porque no encuentra la base de datos) * En el servidor: * cd /srv/yoursite.com/shared/config * vim database.yml (pegue la configuración de su base de datos) * vim secrets.yml (pegue sus secretos de configuración) * En su máquina de desarrollo: * bundle exec cap production deployment * bundle exec cap production cada vez que: update_crontab

Configurar logrotate