Как развернуть приложение Rails на VPS (или выделенный сервер)?

Как я могу развернуть приложение Rails на VPS (виртуальный частный сервер) или выделенный сервер? Было бы неплохо иметь легкий для следования гид.

Я знаю о скриптах для автоматизации процесса, но я думаю, что лучше иметь все под контролем, чтобы лучше понять процесс.

2 ответов


Я успешно развернул приложение heavy Rails для Linode или Digital Ocean, используя следующие технологии:

  • rbenv для установки Ruby
  • С nginx + пассажир для приложения сервера
  • PostgreSQL для сервера баз данных
  • Капистрано для автоматизации развертывания (сначала настройте это на своей машине dev с IP-адресом сервера и настройками, я не буду его покрывать здесь)

Это те шаги, которые работают для меня:

настройка виртуальной машины

создать новую виртуальную машину

следуйте инструкциям по установке вашего хостинга, будь то Linode или Digital Ocean, чтобы создать узел и настроить его.

настройка даты

  • dpkg-перенастроить tzdata

обновление пакетов

  • apt-get update
  • apt-получить обновление

безопасность

создать

  • adduser deploy
  • usermod-a-G sudo deploy
  • выход

настройка ключа SSH-аутентификации

на местных:

  • ssh-keygen
  • скопировать публичный ключ:
    • scp ~/.ssh / id_rsa.паб deploy@example.com:~

на сервере:

  • ssh deploy@example.com
  • включить псевдоним для списка файлов:
    • vim ~/.bashrc и
    • раскомментировать все псевдонимы
  • mkdir .ssh
  • МВ id_rsa.паб.ssh / authorized_keys
  • chown-R deploy: развертывание .ssh
  • chmod 700 .ssh
  • chmod 600 .ssh / authorized_keys
  • выход (тест новая аутентификация)

настройка SSH

  • судо ВИМ /и т. д./по ssh/sshd_config в
  • переключить PermitRootLogin на no
  • перезапуск ssh службы sudo

настройки брандмауэра

настройки кроме того, fail2ban

настройте, если у вас достаточно свободной памяти, так как она имеет тенденцию ее есть.

  • sudo apt-get install-y fail2ban

Настройка Ruby

Установить Git

  • sudo apt-get install-y git

установки rbenv

Установить Ruby

  • sudo apt-get install-y curl gnupg build-essential
  • rbenv install-l (ищите последнюю версию)
  • rbenv установить 2.3.3 (или последнюю доступную версию на данный момент)
  • rbenv global 2.3.3
  • rbenv rehash
  • vim .gemrc
    • вставьте это: gem: --no-document

настройки сервера

установить nginx + пассажир

Установить PostgreSQL

библиотеки установки

установить узел.js

необходимо для предварительной компиляции активов.

  • sudo apt-get install-y nodejs

установить bundler

  • получить установить bundler
  • rbenv rehash

Настройки Приложения

создайте пользователя в PostgreSQL

  • имя пользователя --createuser pwprompt
  • createdb используется -Ousername -Eutf8 имя_базы_данных

я развернул приложение rails на своих производственных серверах (это кластер) с Capistrano раньше, но я обнаружил, что Capistrano немного сложен и иногда даже стал создателем проблем... Поэтому я написал сценарий развертывания по сценарию оболочки bash.

Я поставил его на github с кратким руководством:deploy_rails