CowboyD: демонизируем Cowboy, встраиваемый веб-сервер для Erlang

от автора

О чем это я?

С чего начинается практически каждое web-приложение на Erlang? Не знаю, у кого как, а у меня, как правило, со строчек кода, ответственных за запуск Ковбоя и обслуживание запросов. С функции обновления правил роутинга. Причем всегда это одно и то же — только роуты отличаются, порт и количество акцепторов, может быть. И это можно сделать проще. Догадались уже, к чему я клоню? Нет, это не очередной фреймворк. Это превращение встраиваемого ковбоя в отдельно запускаемое приложение. То есть мы пишем наше приложение, хендлеры Ковбоя, но сам Ковбой не трогаем. Вообще. Ни зависимостей не указываем, ни при старте приложения не запускаем. Любопытно? Добро пожаловать под кат.

Вместо этого, когда приложение уже готово, мы в консоли выполняем команду

cowboyd start myapp /path/to/myapp 8080 

и чудесным образом наше приложение запущено и можно полюбоваться на него на порту 8080. Остановить так же легко:

cowboyd stop myapp 

Одновременно, разумеется, можно запускать сколько угодно приложений — главное не забывать давать им разные порты 😉
Правила роутинга записываются в файле routes.config в корневой директории вашего приложения. Синтаксис Эрланга, только не нужно объявлять модуль, экспортировать функции и, собственно, писать их. Проще посмотреть на пример routes.config. Если вам нужно обновить правила роутинга, достаточно выполнить очередную нехитрую команду:

cowboyd routes-update myapp 

Код после обновления перезагружается автоматически благодаря утилите Sync.

Итак, со вводной частью закончили, теперь главная и, одновременно, самая короткая часть.

Установка

Переходим куда-нибудь, куда будем ставить cowboyd

cd ~/github_projects 

Клонируем репозиторий проекта

git clone https://github.com/chvanikoff/cowboyd 

Даем права на исполнения для cowboyd

chmod +x cowboyd/cowboyd 

Линкуем cowboyd куда-нибудь в исполняемую директорию — например, в /usr/bin

sudo ln -s cowboyd/cowboyd /usr/bin/cowboyd 

Вот и все, теперь можно запустить тестовое приложение из репозитория

cowboyd start webapp ~/github_projects/cowboyd/examples/webapp 8008 

Приложение умеет говорить, что оно запущено по адресу http://localhost:8008, обслуживать статичные css из ~/github_projects/cowboyd/examples/webapp/priv/css и отдавать 404 для всех прочих страниц. Как только оно вам наскучит — самое время написать что-нибудь свое и опробовать cowboyd в деле 😉

Спасибо за внимание.

ссылка на оригинал статьи http://habrahabr.ru/post/187844/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *