webserver — веб-интерфейс для бэкэнда C ++

В настоящее время я работаю над внутренним сервисом, который имеет очень грубый интерфейс для получения статистики и информации о сервисе. Я хотел бы развернуть легкий веб-сервер для него, чтобы пользователи могли переходить по его IP-адресу и собирать статистику и другую информацию об услуге. Мой бэкэнд-сервис выполняет много кодирования видео и тому подобное, поэтому я бы предпочел что-то, что не потребляло бы слишком много циклов ЦП.

Есть ли у кого-нибудь хорошие предложения для такого веб-сервера и облегченного механизма связи между ними? Я никогда не реализовывал ничего подобного, но я видел пример, когда люди использовали такие вещи, как tomcat и XML через локальные сокеты, чтобы делать подобные вещи. Я просто хотел опросить сообщество и посмотреть, есть ли еще какие-нибудь предложения.

2

Решение

Чтобы добавить какой-либо веб-сервис в существующее приложение C ++, вы можете рассмотреть возможность использования некоторых библиотек HTTP-серверов, таких как вес или возможно libonion.

Но вам нужно иметь некоторый цикл обработки событий в приложении …

1

Другие решения

Подход, который вы должны выбрать, зависит от вашего выбора веб-сервера и «нормального» языка сценариев / программирования веб-сервера. Независимо от того, рабочий / процесс, который делает тяжелые вычисления, должен быть в C ++. Тем не менее, его язык сценариев / программирования может быть в чем-то другом, например, Java / Python и т. Д.

Вы должны начать с рассмотрения FastCGI. Если вы хотите сделать все на C ++, подумайте вес инструментарий, который реализует FastCGI.

Другим подходом может быть использование Python / Django, так как вызывать C ++ из Python легко.

Как использовать Django с FastCGI
https://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/

Образец FastCGI:
http://forum.lighttpd.net/topic/79206

1

Если вам не нужна 100% -ная статистика в реальном времени или интерактивная статистика, вы можете просто регулярно записывать ее в текстовый или HTML-файл и использовать для этого стандартный веб-сервер (ngingx, Apache).

0
По вопросам рекламы [email protected]