Что такое Mojolicious?
По состоянию на версию 1.21 это экспериментальная функция!!!
Mojolicious — программный каркас, предназначенный для создания веб-приложений на языке Perl с использованием парадигмы модель-вид-контроллер.
В данном случае Mojolicious используется как демон процесс для REST API. Скорость ответа REST API ускоряется в несколько раз, если использовать демона Mojolicious.
Настройка
Установка модуля
Установка с CPAN
cpan install Mojolicious::Lite
Настройка apache
Включение apache2 модулей
a2enmod headers a2enmod proxy a2enmod proxy_http service apache2 restart #или другая команда в зависимости от Вашей ОС
Настройка apache abills_httpd.conf. Нужно добавить следующий код в блок <VirtualHost
<Proxy *> Order deny,allow Allow from all </Proxy> ProxyRequests Off ProxyPreserveHost On ProxyPass /api/ http://localhost:3000/ keepalive=On ProxyPassReverse /api/ http://localhost:3000/ RequestHeader set X-Forwarded-HTTPS "0" ProxyTimeout 1000
Настройка config.pl
в качестве примера приведен демо ABillS
$conf{BILLING_URL}='https://demo.abills.net.ua:9443/';
Запуск демона
Базовый запуск
Перед запуском продакшн демона, рекомендуется проверить работу на дев демоне, после чего приостановить его процесс.
Дев демон
cd /usr/abills/libexec/ morbo api.pl
Продакшн демон
cd /usr/abills/libexec/ hypnotoad api.pl
Другой порт нежели 3000
Если в настройках apache2 иной порт нежели 3000, запуск делать следующей командой. {PORT} - это порт который в настройках apache
Дев демон
cd /usr/abills/libexec/ morbo -l http://localhost:{PORT} api.pl
в config.pl прописать опцию:
$conf{API_MOJO_PORT}='{PORT}';
Продакшн демон
cd /usr/abills/libexec/ hypnotoad api.pl
Где выполняется и как найти?
Можно найти по ссылке {ваш биллинг}/api, старый скрипт все равно будет выполняться по ссылке {ваш биллинг}/api.cgi