Введение
NaviServer – высокопроизводительный веб-сервер, написанный на C и Tcl. Он может быть легко расширен на любом из этих языков для создания веб-сайтов и сервисов; доступно более 35 модулей (включая интеграцию с базами данных и поддержку протоколов UDP, SMTP, LDAP, DNS, COAP и др.). Проект активно развивается. NaviServer в основном написан на C с тщательно прокомментированным исходным кодом, содержит более 6000 коммитов, сделанных 35 разработчиками, и состоит из более чем 100 000 строк кода. NaviServer лицензируется на условиях Mozilla Public License (MPL). Недавние новые функции включают:
NaviServer is mostly written in C with a very well commented source code, had more than 6,000 commits made by 35 contributors
representing more than 100,000 lines of code. NaviServer is licensed under the terms of the Mozilla Public License (MPL). Recent new features include:
an internal watchdog for automatic server restarts
server internals exposed in a command line mode
thread shared arrays (atomic operations, dict support)
built in caching with cache transaction semantics (cache commit/rollback)
hot code swapping (update code in the running system without server restart)
asynchronous spooling of requests and replies
delivery of static files optionally with gzip or brotli compression with automatic re compression on updates
selective logging with color highlighting (non blocking)
efficient built in crypto support
mass virtual hosting
byte range requests for streaming and resumption of downloads
rich HTTPS support (server and client side SNI, OCSP Stapling)
built in HTTP/HTTPS client support, with log files
built in statistics (for mutex locks/rwlocks, cache, db handles, )
bandwidth management via multiple connection thread pools
WebSocket and IPv6 support
внутренний сторожевой таймер для автоматического перезапуска сервера;
доступ к внутренним компонентам сервера через командную строку;
общедоступные массивы (атомарные операции, поддержка словарей);
встроенное кэширование с транзакционной семантикой (commit/rollback кэша);
горячая замена кода (обновление кода в работающей системе без перезапуска сервера);
асинхронная обработка запросов и ответов;
доставка статических файлов с опциональным сжатием gzip или brotli и автоматическим пересжатием при обновлениях;
селективная журнализация с цветовым выделением (неблокирующая);
эффективная встроенная криптографическая поддержка;
массовый виртуальный хостинг;
запросы диапазонов байтов для потоковой передачи и возобновления загрузок;
расширенная поддержка HTTPS (SNI на стороне сервера и клиента, OCSP Stapling);
встроенная поддержка HTTP/HTTPS-клиента с файлами журналов;
встроенная статистика (для мьютексов/rwlocks, кэша, дескрипторов баз данных и т.д.);
управление пропускной способностью через пулы потоков соединений;
поддержка WebSocket и IPv6.
NaviServer is mostly written in C with a very well commented source code, had more than 6,000 commits made by 35 contributors
representing more than 100,000 lines of code. NaviServer is licensed under the terms of the Mozilla Public License (MPL). Recent new features include:
an internal watchdog for automatic server restarts
server internals exposed in a command line mode
thread shared arrays (atomic operations, dict support)
built in caching with cache transaction semantics (cache commit/rollback)
hot code swapping (update code in the running system without server restart)
asynchronous spooling of requests and replies
delivery of static files optionally with gzip or brotli compression with automatic re compression on updates
selective logging with color highlighting (non blocking)
efficient built in crypto support
mass virtual hosting
byte range requests for streaming and resumption of downloads
rich HTTPS support (server and client side SNI, OCSP Stapling)
built in HTTP/HTTPS client support, with log files
built in statistics (for mutex locks/rwlocks, cache, db handles, )
bandwidth management via multiple connection thread pools
WebSocket and IPv6 support
История
NaviServer основан на AOLserver (версия 4.10), веб-сервере с открытым исходным кодом, разработанном AOL. Проект NaviServer начался как ответвление от проекта AOLserver в июле 2005 года. Он отличается поддержкой множественных протоколов, обеспечивает более высокую масштабируемость благодаря асинхронному вводу-выводу и стремится к более быстрой реализации новых функций. Изначально NaviServer было оригинальным названием сервера – продукта закрытого исходного кода компании NaviSoft в начале 1990-х годов. Он был приобретен AOL в 1995 году и выпущен как открытый исходный код в 1999 году под названием AOLserver после выпуска Mozilla. Этот дружественный форк возвращает коду его первоначальное имя. Крупными приложениями, использующими NaviServer, являются система сообщества ArsDigita и, в частности, OpenACS.