Jump to content

Кэдди (веб-сервер)

Кэдди
Оригинальный автор(ы) Мэтью Холт
Первоначальный выпуск 28 апреля 2015 г .; 9 лет назад ( 28 апреля 2015 )
Стабильная версия
2.8.4 [1]  Отредактируйте это в Викиданных / 2 июня 2024 г .; 2 месяца назад ( 2 июня 2024 г. )
Репозиторий github /caddyserver /кадди
Написано в Идти [2]
Операционная система Варианты BSD , Linux , Plan 9 , macOS и Windows
Платформа ИА-32 (i386), x86-64 , ARM , MIPS , S390X
Тип Веб-сервер , обратный прокси-сервер
Лицензия Апач 2
Веб-сайт кэддисервер Отредактируйте это в Викиданных

Caddy расширяемый кроссплатформенный написанный с открытым исходным кодом, веб-сервер на Go .

Название «Caddy» относится как к помощнику при выполнении утомительных задач, так и к способу организации нескольких частей в упрощенную систему. [3] По своей сути Caddy представляет собой расширяемую платформу для развертывания долгоработающих сервисов («приложений») с использованием единой унифицированной конфигурации, которую можно обновлять в режиме онлайн с помощью REST API . [4] Официальные дистрибутивы Caddy поставляются с набором стандартных модулей, включая HTTP- сервер , автоматизацию TLS и PKI . приложения [5] Он наиболее известен своими автоматическими функциями HTTPS. [6] [7]

Архитектура

[ редактировать ]

Caddy состоит из трех основных компонентов: команды , основной библиотеки и модулей конфигурации. [8] Команда — это расширяемый интерфейс, с помощью которого программа выполняется ; он также может загружать файлы конфигурации , запускать общие режимы, управлять установленными плагинами и предлагать соответствующие служебные функции. Основная библиотека имеет API для загрузки, выгрузки и управления конфигурацией ; но сам по себе он не делает ничего особенно полезного. Большая часть функциональности Caddy обеспечивается модулями, которые представляют собой плагины, расширяющие структуру конфигурации Caddy; например, HTTP-сервер представляет собой модуль. [9] Модули Caddy реализуют различные долгоработающие сервисы, веб-стандарты и другие полезные функции.

Входные данные Caddy — это документ конфигурации JSON. [10] который получен через открытый сокет через RESTful HTTP API. [11] [6] При отсутствии HTTP-клиента интерфейс командной строки Caddy. для загрузки файлов конфигурации можно использовать [12] Адаптеры конфигурации можно использовать для преобразования других форматов конфигурации в JSON . Существующие адаптеры включают Caddyfile, который имеет первоклассную поддержку в командной строке; и YAML , TOML , Nginx и несколько других форматов. [13] [6]

Когда конфигурация получена через сокет администрирования, Caddy декодирует конфигурацию для всех указанных модулей и запускает все модули приложения. [6] Когда модули приложения подготавливаются, они сами могут загружать и подготавливать модули, которые они используют. Например, HTTP-сервер — это модуль приложения, который использует модули обработчика HTTP для обработки HTTP-запросов; эти обработчики могут использовать другие модули для реализации своих функций и так далее. [14] Все эти модули предоставляются на этапе загрузки конфигурации. [8]

Плагины устанавливаются путем статической компиляции их непосредственно в двоичный файл Caddy. [3] [6] Без плагинов собственная структура конфигурации Caddy имеет только некоторые базовые параметры администрирования и ведения журналов. [10] Все остальные функции должны обеспечиваться модулями приложения. Официальные дистрибутивы Caddy поставляются с десятками стандартных модулей; [5] другие можно добавить с сайта проекта, [15] используя xcaddy инструмент командной строки или вручную скомпилировав собственную сборку. [16]

Мик Гибен развил Caddy, чтобы использовать его в качестве ядра CoreDNS , теперь проекта Cloud Native Computing Foundation , так как он ценил его общую архитектуру и простоту настройки. [17]

HTTP-сервер

[ редактировать ]

HTTP-сервер — это модуль приложения, который входит в стандартную комплектацию официальных дистрибутивов Caddy. [9] В основном используется как статический файловый сервер. [18] и обратный прокси-сервер с балансировкой нагрузки. [19] Хотя в основе функций HTTP Caddy лежит реализация из стандартной библиотеки Go, [20] различные улучшения и настройки доступны в качестве промежуточного программного обеспечения и отображаются через параметры конфигурации: [6]

По умолчанию TLS используется автоматически, если какие-либо маршруты имеют непустое сопоставление хостов. [21] Предполагается, что это имена сайтов или IP-адреса , которые обслуживает Caddy, поэтому Caddy автоматически получит и обновит сертификаты для настроенных имен хостов и IP-адресов. Когда автоматический HTTPS активируется таким образом, Caddy также перенаправляет HTTP-запросы в их эквивалентное местоположение HTTPS.

Разработка

[ редактировать ]

Версия Caddy 2 была выпущена 5 мая 2020 года. [7] Рецензенты говорят, что он по-прежнему имеет более простой синтаксис файла конфигурации, чем веб-сервер Apache , хотя формат конфигурации версии 2 в значительной степени несовместим с предыдущим основным выпуском Caddy. [7] [22]

  1. ^ «Выпуск 2.8.4» . 2 июня 2024 г. Проверено 20 июня 2024 г.
  2. ^ Герран, Эндрю (17 февраля 2016 г.). «Выпущена версия Go 1.6» . golang.org . Проверено 5 марта 2016 г.
  3. ^ Jump up to: а б README.md , caddyserver/caddy на GitHub, 27 сентября 2021 г. , получено 27 сентября 2021 г.
  4. ^ «Добро пожаловать — Документация Caddy» . caddyserver.com . Архивировано из оригинала 2 мая 2015 г. Проверено 27 сентября 2021 г.
  5. ^ Jump up to: а б imports.go , caddyserver/caddy на GitHub, 27 сентября 2021 г. , получено 27 сентября 2021 г.
  6. ^ Jump up to: а б с д и ж Вудбек, Адам (2021). Сетевое программирование с помощью GO: безопасный код и надежные сетевые сервисы с нуля . Сан-Франциско, Калифорния. стр. 217–239. ISBN  978-1-7185-0088-4 . OCLC   1198449668 . {{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  7. ^ Jump up to: а б с Джим Солтер (6 мая 2020 г.). «Caddy предлагает TLS, HTTPS и многое другое на одном веб-сервере Go без зависимостей» . Арс Техника . Проверено 12 июня 2023 г.
  8. ^ Jump up to: а б «Архитектура — Документация Caddy» . caddyserver.com . Архивировано из оригинала 14 апреля 2020 г. Проверено 27 сентября 2021 г.
  9. ^ Jump up to: а б «Модуль http — Документация Caddy» . caddyserver.com . Архивировано из оригинала 06 мая 2020 г. Проверено 27 сентября 2021 г.
  10. ^ Jump up to: а б «Структура конфигурации JSON — документация Caddy» . caddyserver.com . Архивировано из оригинала 14 апреля 2020 г. Проверено 27 сентября 2021 г.
  11. ^ «API — Документация Caddy» . caddyserver.com . Архивировано из оригинала 2 марта 2020 г. Проверено 27 сентября 2021 г.
  12. ^ «Командная строка — Документация Caddy» . caddyserver.com . Архивировано из оригинала 2 марта 2020 г. Проверено 27 сентября 2021 г.
  13. ^ «Адаптеры конфигурации — Документация Caddy» . caddyserver.com . Архивировано из оригинала 14 апреля 2020 г. Проверено 27 сентября 2021 г.
  14. ^ Холт, Мэтью (04 декабря 2019 г.), Инженерные проблемы длительных программ го , Фордж, Юта , получено 27 сентября 2021 г.
  15. ^ «Скачать Кэдди» . caddyserver.com . Архивировано из оригинала 2 мая 2015 г. Проверено 27 сентября 2021 г.
  16. ^ «Сборка из исходного кода — Документация Caddy» . caddyserver.com . Архивировано из оригинала 29 мая 2020 г. Проверено 27 сентября 2021 г.
  17. ^ Джон Балемарик; Крикет Лю (2019). Изучаем CoreDNS . «О'Рейли Медиа, Инк.». ISBN  9781492047919 . Проверено 12 июня 2023 г.
  18. ^ «Краткое руководство по статическим файлам — Документация Caddy» . caddyserver.com . Архивировано из оригинала 8 мая 2020 г. Проверено 27 сентября 2021 г.
  19. ^ «Краткое руководство по обратному прокси — Документация Caddy» . caddyserver.com . Архивировано из оригинала 8 мая 2020 г. Проверено 27 сентября 2021 г.
  20. ^ Холт, Мэтью (27 мая 2015 г.). «Взгляд внутрь Caddy, веб-сервера, написанного на Go» . blog.gopheracademy.com . Архивировано из оригинала 30 мая 2015 г. Проверено 27 сентября 2021 г.
  21. ^ «Автоматический HTTPS — Документация Caddy» . caddyserver.com . Архивировано из оригинала 4 марта 2016 г. Проверено 27 сентября 2021 г.
  22. ^ Джек Уоллен (26 мая 2022 г.). «Как развернуть одну веб-страницу на сервере Caddy из Caddyfile» . Техреспублика . Проверено 12 июня 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6b92ded89a7a237304be55fd91a082a7__1706984640
URL1:https://arc.ask3.ru/arc/aa/6b/a7/6b92ded89a7a237304be55fd91a082a7.html
Заголовок, (Title) документа по адресу, URL1:
Caddy (web server) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)