В прошлой статье мы говорили о настройке Rails-окружения для разработки. Теперь пришло время для настройки боевого сервера.
Для этого необходимо зарегистрироваться на DigitalOcean (реферальная ссылка, после регистрации вы получити $10 на свой счет) и создать Droplet. В качестве ОС необходимо выбрать Ubuntu 14.04.
Настройка сервера
Заходим на сервер под root
:
В первую очередь создаем нового пользователя:
Добавляем его в группу sudo
, чтобы у него были привилегии root
:
Затем настраиваем вход на сервер по ssh-ключам. Для этого генерируем ключ на локальном компьютере:
Заходим на сервер под новым пользователем:
Создаем директорию ssh
:
Копируем публичный ключ с локального компьютера:
И сохраняем его в файл ~/.ssh/authorized_keys
на сервере. Далее меняем права на этот файл и переключаемся снова на пользователя root
:
Для большей безопасности, запрещаем вход на сервере через ssh
под пользователем root
. Для этого открываем файл /etc/ssh/sshd_config
и находим следующую строчку:
Меняем её на:
И перезапускаем ssh
:
Обратно заходим под пользователем deploy
:
Приступаем к настройке временной зоны. Выбираем из списка “Europe/Moscow”:
Настраиваем локаль, для этого открываем файл /etc/default/locale
и добавляем туда следующее:
Запускаем команду перенастройки:
Установка ПО
С настройкой сервера мы закончили, приступаем к установке ПО. Устанавливаем ntp
для автоматической синхронизации времени:
Далее устанавливаем Redis и PostgreSQL:
Установка Ruby
Устанавливаем необходимые зависимости:
В качестве менеджера версий Ruby, мы будем использовать rbenv. После установки перезапускаем текущую сессию bash
:
Устанавливаем дополнительные плагины, необходимые для установки Ruby:
Находим последнюю стабильную версию Ruby:
На момент написания статьи - это 2.2.3:
Устанавливаем Ruby и перезапускаем текущую сессию bash
:
Устанавливаем и настраиваем Bundler, чтобы он хранил все гемы в директори проекта:
Установка Nginx и Passenger
В качестве веб-сервера у нас будет выступать Nginx, а сервера приложений - Passenger. Для установки необходимо добавить PGP-ключ:
Создаем файл /etc/apt/sources.list.d/passenger.list
и добавляем в него новый источник:
Меняем права на этот файл:
Обновляем список пакетов и устанавливаем Nginx и Passenger:
Переходим к настройке Nginx, открываем файл /etc/nginx/nginx.conf
и находим там следующие строчки:
Их необходимо заменить на:
Создание тестового проекта
Теперь остается только проверить, что все работает, для этого создадим тестовый проект. Для этого нам понадобится установить Ruby on Rails и SQLite:
Создаем новый проект:
Для запуска тестового проекта нам понадобится JavaScript runtime библиотека. Открываем Gemfile
и находим строчку:
Заменяем её на:
Запускаем установку зависимостей проекта:
Для того чтобы наш тестовый проект был доступен по IP-адресу, необходимо отключить настройки по умолчанию у Nginx. Для этого открываем файл /etc/nginx/sites-available/default
и находим следующие строчки:
Меняем их на:
Создаем файл настроек для тестового проекта:
И добавляем туда следующее содержимое:
Создаем символьную ссылку для этого файла:
Перезапускаем nginx:
На этом все, настройка сервера завершена. Теперь можно открыть в браузере страницу с IP-адресом вашего сервера и увидеть, что все работает.
Источники: