Задача
По опыту других рельсовиков известно, что для хостинга rails-проектов нужен VDS хостинг.
Знающие люди подсказывают, что из openVZ и Xen, лучше Xen.
Условия задачи: найти недорогой VDS-хостинг варианта Xen.
После недолгих исканий выбрали http://www.truevds.ru/
Плюсы:
- Большой выбор тарифов
- Подключение в течение 24 часов с момента поступления оплаты
- Подключение к узловой сети 1000 mbps full-duplex, 1 IP-адрес
- Разделяемое подключение к Интернет 100 mbps без ограничений
- Гарантированное выделение ресурсов (процессора, памяти, диска) без оверселлинга
- Установка и конфигурация операционной системы
- Все полномочия администратора (root-доступ)
- Возможность установки собственного ядра операционной системы
- Паравиртуализация на базе Xen и аппаратная виртуализация на базе Xen и KVM
- Предустановленное программное обеспечение (пресеты)
- Соглашение об уровне обслуживания (SLA) с компенсацией
- Гарантированная доступность услуги более 99.5%
- Замена неисправного оборудования в течение 1 часа
- Сеть хранения данных (SAN)
- Зеркальное дублирование дисков RAID1
Покупка хостинга
Состоит из простых шагов:
- Выбрать тариф www.truevds.ru/price
- Оплатить (способов много, мы перевели через Сбер, 4 дня)
- После оплаты придет письмо с уточнением дистрибутива и пресета — выбрать и подождать пару часов :)
Регистрация домена
Так как truevds занимаются только VDS, зарегистрировать домен необходимо самостоятельно. Посчитали, сколько стоит регистрация на www.nic.ru: 620 руб в зоне org + 600 Primary-Standard dns + 150 Secondary dns = 1370 руб/год только за регистрацию домена. У Свеба при покупке хостинга на год начиная с тарифа SX-2 домен дается в подарок, плюс удобная админка.
Результат
VDS у нас тру :) Даже Тру-12. На нем работает process.novgorodwebdev.org.
А novgorodwebdev.org это Свебовский sx-2.
Итого: 180*12 + 1440 = 3600 в год.
NB: нашли вменяемого регистратора r01.ru/domain/pay (кстати, sweb у них регистрируется). .org за 440 в год, primary и secondary dns бесплатно
Установка ПО
Можно взять пресет Ruby on Rails production но для свежести ПО лучше все установить самому.
Мы взяли debian.
Ruby нам нужен не простой, а Enterprise Edition
- Скачиваем последнюю версию
- Распаковываем и устанавливаем
- Настраиваем Ruby EE как ruby по-умолчанию в /etc/environmen:
PATH="/opt/ruby-enterprise-x.x.x/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
Можно и так:
sudo ln -s /opt/ruby-enterprise/bin/ruby /usr/bin/ruby
sudo ln -s /opt/ruby-enterprise/bin/gem /usr/bin/gem
sudo ln -s /opt/ruby-enterprise/bin/rake /usr/bin/rake
Установка и настройка nginx
Ruby EE сам устанавливает nginx и passender для него.
Помощь Хабра habrahabr.ru/blogs/ror/64295
Конфиг для запуска nginx gist.github.com/174518
Установка postresql
sudo aptitude install postgresql-server postgresql-server-dev
NB: postgresql-server-dev нужен для сборки gem postgres
Например, надо создать базу под redmine
Создаем пользователя и базу данных под redmine (имя пользователя и базы redmine)
1. sudo su postgres
2. #createuser redmine --no-superuser --no-createdb --no-createrole --login --pwprompt --encrypted
3. #createdb --owner=redmine --encoding=utf-8 redmine
4. #exit
Настраиваем, боремся с долгой загрузкой приложения
Долгая загрузка rails nginx
5.8. Resource control and optimization options
5.8.3. passenger_pool_idle_time — здесь указать время выгрузки при простое (0 — не выгружать)
Замечания, дополнения приветствуются :)