Простой способ запустить несколько приложений на сервере
У меня есть несколько приложений на моем сервере. Каждое приложение использует свой собственный набор гемов rvm. Я использую Thin в качестве веб-сервера для каждого приложения, этот сервер устанавливается отдельно для каждого приложения. Каждый сервер работает на свой порт. Главный сервер nginx действует как прокси-сервер.
Мне нужно, чтобы через некоторые скрипты был доступен следующий функционал:
- Запустите все тонкие серверы.
- Запустите, остановите или перезапустите любой сервер.
- Каждую минуту (по cron) проверяйте, правильно ли работает приложение (HTTP-статус 200). Автоматический перезапуск приложения, если проверка не удалась.
- Каждое приложение не должно иметь доступа к данным другого приложения. Они должны быть запущены в chroot или разными пользователями.
- Автоматическое создание конфигурации nginx.
Добавить новое приложение в систему должно быть легко.
Что вы можете предложить для достижения этой цели?
Тонкий может быть заменен на любой другой сервер при необходимости. Основной сервер nginx также используется для запуска нескольких сайтов PHP, поэтому я не хочу его заменять.
Я думал о перекомпиляции nginx с пассажирским модулем и установке его в качестве основного сервера. Если я сделаю это, можно ли будет запускать каждое приложение, используя собственную установку ruby и gemset?
1 ответ
Для мониторинга и автозапуска или других методов автореакции я бы использовал nagios или icinga. Возможно, вам нужно самостоятельно реализовать различные проверки и методы автореакции, но эта среда очень гибкая и может расти вместе с вашими установками. Или / И Puppet для настройки и установки обязанностей.
Для разделения установок разных пользователей в большинстве случаев все должно быть в порядке, я думаю, это зависит от ваших ограничений безопасности.