119
правок
Maks1mS (обсуждение | вклад) Нет описания правки |
Maks1mS (обсуждение | вклад) Нет описания правки Метка: визуальный редактор отключён |
||
Строка 1: | Строка 1: | ||
== Что такое caddy? == | == Web-сервер caddy == | ||
=== Что такое caddy? === | |||
Caddy — это веб-сервер с открытым исходным кодом с автоматическим HTTPS из коробки. | Caddy — это веб-сервер с открытым исходным кодом с автоматическим HTTPS из коробки. | ||
Среди основных особенностей можно выделить: | Среди основных особенностей можно выделить: | ||
* Простота настройки | * Простота настройки; | ||
* Автоматическое обновление сертификатов TLS | * Автоматическое обновление сертификатов TLS; | ||
* Поддержка мультиядерности/мультипроцессорности | * Поддержка мультиядерности/мультипроцессорности; | ||
* Поддержка HTTP/1.1, HTTP/2, и HTTP/3 по умолчанию | * Поддержка HTTP/1.1, HTTP/2, и HTTP/3 по умолчанию; | ||
* Возможность изменения конфигурации через API | * Возможность изменения конфигурации через API. | ||
=== Установка caddy в ОС Альт === | |||
# apt-get update && apt-get install caddy | |||
=== Управление службой === | |||
== | ==== С использованием Systemd ==== | ||
Пакет caddy в ОС Альт предоставляет две systemd службы: caddy и caddy-api. | Пакет caddy в ОС Альт предоставляет две systemd службы: caddy и caddy-api. | ||
Строка 22: | Строка 28: | ||
Управление данными службами возможно через стандартные команды systemctl. | Управление данными службами возможно через стандартные команды systemctl. | ||
Например, чтобы добавить caddy в автозагрузку и запустить прямо сейчас можно воспользоваться данной командой: | Например, чтобы добавить caddy в автозагрузку и запустить прямо сейчас можно воспользоваться данной командой: | ||
# systemctl enable --now caddy | # systemctl enable --now caddy | ||
==== Без использования systemd ==== | |||
Также возможно использование caddy без systemd. | |||
Для запуска сервера воспользуйтесь командой <code>caddy run</code>. Для запуска с стандартной конфигурацией, предоставляемой пакетом caddy добавьте <code>--сonfig /etc/caddy/Caddyfile</code>: | |||
# caddy run --config /etc/caddy/Caddyfile | |||
Данная команда запустит сервер в текущем терминале. Если необходимо запустить в фоне, можно воспользоваться командой <code>caddy start</code>. | |||
Для выключения сервера воспользуйтесь командой <code>caddy stop</code>. | |||
По | По остальным командам можно почитать в: | ||
* <code>caddy help</code> и <code>caddy help [command]</code> | |||
* [https://caddyserver.com/docs/command-line официальной документации] . | |||
=== | === Настройка caddy === | ||
Пример конфигурации: | В ОС Альт конфигурация caddy расположена в <code>/etc/caddy/Caddyfile</code>. | ||
По умолчанию главный файл конфигурации содержит строку <code>import Caddyfile.d/*.caddyfile</code>. Эта строка указывает на то, что caddy импортирует все файлы с расширением .caddyfile из директории /etc/caddy/Caddyfile.d/. Данная функциональность позволяет разделять конфигурации на отдельные файлы и упрощает организацию и поддержку конфигурации сервера. | |||
==== Статический файловый сервер ==== | |||
Для создания статического файлового сервера необходимо использовать директиву [https://caddyserver.com/docs/caddyfile/directives/file_server file_server]. | |||
Пример минимальной конфигурации: | |||
example.com { | example.com { | ||
Строка 70: | Строка 84: | ||
} | } | ||
Данная конфигурация скрывает файл /var/www/html/file | Данная конфигурация скрывает файл /var/www/html/file. | ||
==== Reverse proxy ==== | |||
Для создания обратного прокси-сервера (reverse proxy) необходимо использовать директиву [https://caddyserver.com/docs/caddyfile/directives/reverse_proxy reverse_proxy]. | |||
Пример минимальной конфигурации: | |||
example.com { | |||
reverse_proxy localhost:5000 | |||
} | |||
Пример конфигурации, которая проксирует запросы, начинающиеся с /api/, и обеспечивает обслуживание статических файлов: | |||
example.com { | |||
root * /var/www/html | |||
reverse_proxy /api/* localhost:5000 | |||
file_server | |||
} | |||
==== Редирект с www. субдомена ==== | |||
Для редиректа в сервере caddy используется директива [https://caddyserver.com/docs/caddyfile/directives/redir redir]. | |||
Пример конфигурации для редиректа с www. субдомена: | |||
www.example.com { | |||
redir <nowiki>https://example.com{uri}</nowiki> | |||
} | |||
example.com { | |||
} | |||
Если необходимо сделать редирект для нескольких доменов, то можно воспользоваться переменными <code>{labels.*}</code>: | |||
www.example-one.com, www.example-two.com { | |||
redir <nowiki>https://{labels.1}.{labels.0}{uri}</nowiki> | |||
} | |||
example-one.com, example-two.com { | |||
} | |||
Массив labels хранит части имени хоста, индексируемые с 0 с права (0=com, 1=example-one, 2=www). | |||
==== Адаптер конфигов ==== | |||
=== | === Решение типовых проблем === | ||
=== | === Дополнительно === | ||
* [https://github.com/caddyserver/caddy Страница проекта на GitHub] | |||
* '''TODO''' | |||
=== Список использованных источников === | |||
* [https://caddyserver.com/docs/ Официальная документация Caddy]; | |||
* [https://wiki.archlinux.org/title/Caddy Викистраница Caddy на wiki.archlinux.org]; | |||
* [https://www.digitalocean.com/community/tutorials/how-to-host-a-website-with-caddy-on-ubuntu-18-04-ru#3-caddy Хостинг веб-сайта с Caddy в Ubuntu 18.04 (Digitalocean Tutorials)]. | |||
* '''TODO''' |