The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен HTTP-сервер Caddy 0.9

20.07.2016 11:25

Доступен выпуск http-сервера Caddy 0.9, примечательного поставкой в виде обособленного исполняемого файла без зависимостей (не требует даже libc) и поддержкой автоматической настройки HTTPS (получение сертификатов автоматизировано через сервис Let’s Encrypt). Код проекта написан на языке Go и поставляется под лицензией Apache 2.0.

В отличие от http-серверов, ориентированных на производительность или функциональность, Caddy пытается максимально упростить и автоматизировать настройку, обеспечив при этом должный уровень безопасности. Caddy позиционируется как решение для web-разработки и быстрого развёртывания web-сайтов, не требующее для запуска особых технических знаний и предоставляющее возможность обслуживания сайтов дизайнерами, блоггерами и авторами контента, без привлечения администраторов и технического персонала.

Сервер поддерживает HTTP/2 и сетевой протокол QUIC (Quick UDP Internet Connections), виртуальные хосты (в том числе TLS SNI), ротацию сессионных TLS-ключей, применяет по умолчанию HTTPS, позволяет формировать динамический контент через шаблоны, которые напоминают SSI. Для подключения полноценных обработчиков динамического контента, например, проектов на PHP, предлагается использовать FastCGI. Настройка осуществляется через простой формат конфигурации caddyfile. В будущем ожидается поддержка REST API для удалённого управления и конфигурационный web-интерфейс (на разработку данных возможностей уже получено финансирование от проекта Mozilla).

Из доступных модулей-расширений можно отметить систему ограничения доступа ipfilter, файловый менеджер, систему клонирования содержимого сайта из git-репозиториев, модуль для организации загрузки файлов, средство для интеграции поискового движка bleve, систему мониторинга, фильтр для автоматической упаковки css/javacript/html, генератор сайтов hugo, поддержку JWT (JSON Web Tokens) и JSONP.

Новый выпуск примечателен полной переработкой основной архитектуры проекта и реализации TLS. Вместо дополнений теперь предлагается модель формирования функциональности через плагины, при помощи которых реализованы практически все компоненты Caddy, включая HTTP-сервер. Плагины позволяют использовать Caddy для создания серверов, отличных от HTTP, например, возможно создание на базе Caddy DNS-сервера, почтового сервера, SSH, git-сервера и т.п. Связанный с TLS код отделён от остальной функциональности, что позволяет использовать его, например, для реализации STARTTLS в почтовом сервере или в SFTP.

В настоящее время уже развивается DNS-сервер CoreDNS, основанный на технологиях Caddy. Добавлена экспериментальная поддержка протокола QUIC, развиваемого компанией Google в качестве альтернативы связки TCP+TLS для Web. QUIC решает проблемы с большим временем установки и согласования соединений в TCP, а также минимизирует задержки при потере пакетов в процессе передачи данных.

  1. Главная ссылка к новости (https://caddyserver.com/blog/c...)
  2. OpenNews: Проект Mozilla распределил 385 тысяч долларов между значимыми открытыми проектами
  3. OpenNews: В рамках проекта Sandstorm развивается платформа для персональных web-серверов
  4. OpenNews: Компания Google развивает новый сетевой протокол QUIC
  5. OpenNews: Google намерен использовать сетевой протокол QUIC в браузере Chrome по умолчанию
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44817-caddy
Ключевые слова: caddy, http
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (46) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, dr Equivalent (ok), 11:39, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > поддержкой автоматической настройки HTTPS (получение сертификатов автоматизировано через сервис Let’s Encrypt)

    Вот так надо делать.

     
     
  • 2.8, rshadow (ok), 13:08, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    +100500 за идею.

    Осталось дождаться когда плагин сделают к нормальному nginx а не поделочному серверу.

     
     
  • 3.9, nemo (??), 13:15, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +9 +/
    В общем-то дожидаться не обязательно -- начните сами делать сей плагин, всем польза будет.
     
     
  • 4.30, Аноним (-), 19:51, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Главное не забыть "ожидается поддержка REST API для удалённого управления" и запилить автоматическую настройку управления для АНБ.
     
  • 3.21, Ergil (?), 16:26, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Есть Openresty(nginx с дополнительными патчами) на котором это уже работает. Мой пакет Openresty под Ubuntu GNU/Linux 14.04 и бэкпорт нужной версии OpenSSL из 16.04 можно взять https://launchpad.net/~ernillew/+archive/ubuntu/operesty-for-le и доставить https://github.com/GUI/lua-resty-auto-ssl(его в идеале тоже нужно опакетить, но руки не дошли).
    И все работает.
     
  • 2.13, Ergil (?), 14:13, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Openresty(то есть nginx с патчами) делает тоже самое у меня. При чем еще и генерит сертификаты на лету отвечая на *.domain.xyz и сразу проводя подтверждение владения при первом обращении к домену.
     
  • 2.40, Аноним (-), 20:53, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ага, это типа:
    - Стой! Пароль?
    - Вон, на стенде написан.
    - Ааа, тогда проходи.
    К сертификатам и всему, что связано с защитой данных, надо относиться предельно ответственно. А эту фичу запилили для баранов, которым их же собственная безопасность - лишь досадная помеха.
     
     
  • 3.49, Crazy Alex (ok), 11:24, 21/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Блин, ну сколько раз про модели угроз и постановку целей повторять?

    "Caddy позиционируется как решение для web-разработки и быстрого развёртывания web-сайтов, не требующее для запуска особых технических знаний и предоставляющее возможность обслуживания сайтов дизайнерами, блоггерами и авторами контента, без привлечения администраторов и технического персонала".

    От скрипткиддисов и подобных прикрыться того, что есть в этой штуке - более чем достаточно. А большего для данного применения и не надо - лишь бы пароль к бложеку открытым текстом не летел.

     
     
  • 4.53, Аноним (-), 10:32, 25/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В данном случае главная угроза - обезьяна с гранатой которая устанавливает сервер.
     

  • 1.3, Аноним (-), 11:43, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >  ограничения доступа ipfilter

    iptables, pf2, ipfw

    > предлагается использовать FastCGI

    Если б конфиги были не такие ужасные.

    Еще не доросли до продакшена .

     
  • 1.5, anonymous (??), 12:18, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > в виде обособленного исполняемого файла без зависимостей (не требует даже libc)

    Я так понимаю это называется "статическая компиляция"?

     
     
  • 2.10, анон (?), 13:25, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В данном контексте это означает, что написано на чистом Go, без привлечения сторонних библиотек на C.
     
  • 2.11, anonymous (??), 13:25, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Скорее уж статическая линковка.
     
     
  • 3.54, Аноним (-), 15:31, 25/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    в любом случае - уже за это автору надо плюсануть :) требуется немалое Мужество и выдержка чтобы такое - доделать :)
     

  • 1.6, Enapiuz (?), 12:33, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вебсервер для боггеров, интересно :)
    Надо попробовать будет с github pages перенести один статический сайтик.
     
  • 1.12, Аноним (-), 13:42, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    curl: (7) Failed to connect to caddyserver.com port 443: Connection refused

    ок

     
  • 1.14, mine (ok), 14:33, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > В отличие от http-серверов, ориентированных на производительность или функциональность

    ... http-сервер Caddy не умеет ничего и работает медленно?

     
     
  • 2.23, rob pike (?), 16:48, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Луддит! Хейтер! Ретроград!
    Этот сервер написан на Go! На Go!
     
     
  • 3.25, Аноним (-), 17:44, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сервер на Go можно написать парой десятков строк.
     
     
  • 4.26, rob pike (?), 18:14, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В других языках придется писать миллионы строк, может быть даже миллиарды.
     
     
  • 5.27, Аноним (-), 19:07, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да что уж, триллиарды!
     
     
  • 6.29, rob pike (?), 19:45, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Выразить точное количество строк можно только в языке Go, где константы никогда не переполняются.
     
     
  • 7.35, Аноним (-), 20:10, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Выразить точное количество строк можно только в языке Go, где константы никогда
    > не переполняются.

    Тонко, тонко. А бывают языки с переполняющимися константами? JavaScript/ECMAScript не предлагать.

     
     
  • 8.37, rob pike (?), 20:28, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Даже в прогрессивном языке Go переполняются Но если аккуратно расставлять привед... текст свёрнут, показать
     
  • 4.32, Аноним (-), 20:05, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Сервер на Go можно написать парой десятков строк.

    Его и на си можно в десяток строк написать - #include "lwan.h" и понеслась. Заодно сборка мусора не лагает, и вообще - эта хня заняла первое место на techempower в номинации "сериализация JSON".

     
     
  • 5.38, rob pike (?), 20:33, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На тесте 'Plain text' там же его обгоняет Rapidoid, на Java. В три раза.
     
     
  • 6.46, Аноним (-), 03:58, 21/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > На тесте 'Plain text' там же его обгоняет Rapidoid, на Java. В три раза.

    Да там вообще тесты местами странновато сделаны. Например, все тесты подогнаны так что можно без проблем брать любую быструю как понос key-value базу и всех порвать. В тестах с запросами lwan почему-то забенчен с sqlite или mysql. С понятным результатом. Не стоит воспринимать как истину в последней инстанции, но все-таки забавно когда какой-то малоизвестный фрукт вот так бац и все решения обставил, при том в парсинге json что актуально для современной скоростной вебни где все по максимуму выпихано на клиента а вебня перекидывается с сервером чаще всего как раз json'ом.

     

  • 1.16, Аноним (-), 15:08, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Я так понимаю, по лежащему http://caddyserver.com/ можно оценить его надёжность.
     
     
  • 2.18, Аноним (-), 15:33, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    лол
     
  • 2.34, Аноним (-), 20:09, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Я так понимаю, по лежащему http://caddyserver.com/ можно оценить его надёжность.

    Они не обещали производительность, вот и сдох после публикации новости.

     

  • 1.17, абвгдейка (ok), 15:32, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    а кому нужно много и быстро разворачивать сайты? Спамерам:)
     
     
  • 2.28, rob pike (?), 19:41, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спам, реклама и порно - три главных двигателя интернет-технлогий.
     
  • 2.33, Аноним (-), 20:07, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > а кому нужно много и быстро разворачивать сайты? Спамерам:)

    А ножи сильнее всего нужны серийным убийцам, палюбэ :)

     

  • 1.20, Аноним (-), 16:14, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Чото программисты на го имеют склонность к написанию монстрокомбайнов. То докер слепят, а потом пилят его на части, то вот это вот…
     
     
  • 2.36, Аноним (-), 20:17, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Чото программисты на го имеют склонность к написанию монстрокомбайнов. То докер слепят,
    > а потом пилят его на части, то вот это вот…

    Карманная версия энтерпрайзятины. Они вырастут и начнут наворачивать уродов на яве с гигабайтным сетапом.

     
  • 2.42, Наркоман (?), 21:01, 20/07/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нет, лучше взять нжинкс и обложить его жидкими скриптами на башике, зато не монстрокомбайн!
     
     
  • 3.47, Аноним (-), 04:01, 21/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Нет, лучше взять нжинкс и обложить его жидкими скриптами на башике, зато
    > не монстрокомбайн!

    Оправдываещь свой ник. Да фигли, надо не мелочиться и сделать весь сервак одним ASIC'ом. А когда в бложик захочется добавить запись - перевыпустить ASIC, что уж там. Комбайны - так по максимуму.

     

  • 1.22, rob pike (?), 16:47, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > B rating (ssllabs)
    >    - rc4 acceptance
    >    - Session resumption (caching) No (IDs empty)
    >    - no OCSP stapling
    >    - Next Protocol Negotiation (NPN) Yes, but not signalling a http/1.1 fallback
     
  • 1.41, Аноним (-), 20:57, 20/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >  максимально упростить и автоматизировать настройку
    > для web-разработки и быстрого развёртывания web-сайтов, не требующее для запуска особых технических знаний и предоставляющее возможность обслуживания сайтов дизайнерами, блоггерами и авторами контента, без привлечения администраторов и технического персонала.

    Пастухи ботнетов блаженно зажмурились в предвкушении.
    Убивать за такое надо.

     
     
  • 2.43, Аноним (-), 01:39, 21/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Убивать за такое надо.

    Не надо! Это негуманно!
    *Владелец ботнета*

     
  • 2.50, Crazy Alex (ok), 12:57, 21/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    С централизованными принудительными апдейтами-то? Очень не факт.
     

  • 1.44, sHaggY_caT (ok), 02:51, 21/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Для неосиляторов Puppet/Ansible/Salt/Chef/etc сгодится.
     
     
  • 2.45, angra (ok), 03:53, 21/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А какое отношение имеют инструменты управления десятками серверов к вебсерверу для одного сервера?
     
  • 2.48, Аноним (-), 04:26, 21/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Для неосиляторов Puppet/Ansible/Salt/Chef/etc сгодится.

    Скорее для тех кто не может себе сертификат выписать. Да еще привязка к одному сервису -  очень в духе тех кто пишет на новомодных языках.

     
  • 2.51, Crazy Alex (ok), 12:58, 21/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Разумеется.
    Оно для тех, кто не то что не осилил - а о таких штуках даже не слышал (потому что им на фиг не надо) - "не требующее для запуска особых технических знаний и предоставляющее возможность обслуживания сайтов дизайнерами, блоггерами и авторами контента, без привлечения администраторов и технического персонала"
     
     
  • 3.52, Aninymous1 (?), 19:22, 21/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Разумеется.
    > Оно для тех, кто не то что не осилил - а о
    > таких штуках даже не слышал (потому что им на фиг не
    > надо) - "не требующее для запуска особых технических знаний и предоставляющее
    > возможность обслуживания сайтов дизайнерами, блоггерами и авторами контента, без привлечения
    > администраторов и технического персонала"

    А функционирующий мозг для запуска данного сервера требуется? Если нет, то предрекаю этому продукту широчайший успех...

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру