Введение

NaviServer – высокопроизводительный веб-сервер, написанный на C и Tcl. Он может быть легко расширен на любом из этих языков для создания веб-сайтов и сервисов; доступно более 35 модулей (включая интеграцию с базами данных и поддержку протоколов UDP, SMTP, LDAP, DNS, COAP и др.). Проект активно развивается. NaviServer в основном написан на C с тщательно прокомментированным исходным кодом, содержит более 6000 коммитов, сделанных 35 разработчиками, и состоит из более чем 100 000 строк кода. NaviServer лицензируется на условиях Mozilla Public License (MPL). Недавние новые функции включают:

внутренний сторожевой таймер для автоматического перезапуска сервера;
доступ к внутренним компонентам сервера через командную строку;
общедоступные массивы (атомарные операции, поддержка словарей);
встроенное кэширование с транзакционной семантикой (commit/rollback кэша);
горячая замена кода (обновление кода в работающей системе без перезапуска сервера);
асинхронная обработка запросов и ответов;
доставка статических файлов с опциональным сжатием gzip или brotli и автоматическим пересжатием при обновлениях;
селективная журнализация с цветовым выделением (неблокирующая);
эффективная встроенная криптографическая поддержка;
массовый виртуальный хостинг;
запросы диапазонов байтов для потоковой передачи и возобновления загрузок;
расширенная поддержка HTTPS (SNI на стороне сервера и клиента, OCSP Stapling);
встроенная поддержка HTTP/HTTPS-клиента с файлами журналов;
встроенная статистика (для мьютексов/rwlocks, кэша, дескрипторов баз данных и т.д.);
управление пропускной способностью через пулы потоков соединений;
поддержка WebSocket и IPv6.

История

NaviServer основан на AOLserver (версия 4.10), веб-сервере с открытым исходным кодом, разработанном AOL. Проект NaviServer начался как ответвление от проекта AOLserver в июле 2005 года. Он отличается поддержкой множественных протоколов, обеспечивает более высокую масштабируемость благодаря асинхронному вводу-выводу и стремится к более быстрой реализации новых функций. Изначально NaviServer было оригинальным названием сервера – продукта закрытого исходного кода компании NaviSoft в начале 1990-х годов. Он был приобретен AOL в 1995 году и выпущен как открытый исходный код в 1999 году под названием AOLserver после выпуска Mozilla. Этот дружественный форк возвращает коду его первоначальное имя. Крупными приложениями, использующими NaviServer, являются система сообщества ArsDigita и, в частности, OpenACS.