С веб-сервером Caddy вы получаете HTTPS или ничего. Итак, давайте посмотрим, как вы можете установить Caddy в Ubuntu и настроить его для обслуживания вашего веб-приложения. Мы будем получать сертификаты TLS от LetsEncrypt.
Настраивать
Предположим, у вас есть VPS с IP-адресом: 10.20.30.40 и поддомен FQDN.пример.com, чья запись A указывает на этот IP-адрес.
VPS работает под управлением Ubuntu 18.04 Версия сервера LTS и следующие настройки выполняются от имени пользователя root.
Шаг 1. Установка Caddy Web Server
Caddy написан на Go и может работать как отдельный исполняемый двоичный файл. Однако есть различные плагины, которые вы можете встроить в него для определенных DNS-серверов и т. Д. Мы будем устанавливать простой двоичный файл без каких-либо плагинов, чтобы он работал со всеми настройками.
Чтобы получить свой двоичный файл, посетите их официальную страницу загрузок и выберите все плагины и телеметрию, которые вам требуются. Ниже будет команда bash для загрузки и размещения двоичного файла caddy server в нужном месте. От имени пользователя root запустите:
$ curl https: // getcaddy.com | bash -s личноеКак только это будет сделано, мы сможем найти двоичный файл, запустив:
$ whereis caddyКэдди: / usr / local / bin / caddy
Если вам когда-нибудь понадобится удалить сервер или обновить его с помощью более нового исполняемого файла, теперь вы знаете, где искать.
Шаг 2. Тестирование вашего веб-сайта
Если у вас нет веб-сайта, просто создайте пустую папку и выполните команды в ней. Вы можете получить ошибку 404 в своем браузере, но настройку сервера все еще можно проверить. Если у вас есть веб-сайт, перейдите в каталог, в котором находится корневой веб-сайт вашего веб-сайта по адресу. В качестве типичного примера я выберу / var / www / mysite в качестве примера со следующим индексом.html хранится внутри него.
/ var / www / mysite / index.htmlЭта страница обслуживается Caddy Server
Это абзац.
Этого достаточно, чтобы мы начали. Теперь в том же каталоге, что и этот индекс.html, запустите следующую команду:
$ caddyАктивация функций конфиденциальности… готово.
http: //: 2015
ВНИМАНИЕ: ограничение 1024 дескриптора файла слишком мало для производственных серверов. Рекомендуется не менее 8192. Исправить с помощью ulimit -n 8192.
Оставьте Caddy в этом состоянии.
Вы можете перейти на общедоступный IP-адрес своего сервера по номеру порта 2015, чтобы проверить это: http: // 10.20.30.40: 2015 убедитесь, что ваш брандмауэр не блокирует этот порт.
И вы увидите этот индекс.html обслуживается автоматически. Это соответствует вековому соглашению о том, что первая страница любого веб-сайта называется index, который большинство веб-серверов, таких как Nginx, Apache и даже Caddy, служат первой страницей, даже если вы не указываете эту страницу с помощью / index.html в конце URL.
Шаг 3. Настройка HTTPS
Теперь, когда вы подтвердили, что ваш веб-сайт действительно работает с Caddy и его можно обслуживать, пришло время настроить HTTPS. Для этого вы можете использовать интерфейс командной строки или использовать файл конфигурации с именем Caddyfile. Сначала мы будем использовать командную строку.
В том же каталоге, что и ваш сайт, выполните следующую команду:
$ caddy -host поддомен.пример.ком## Впервые он попросит вас указать адрес электронной почты, чтобы вы могли получить
уведомление об обновлении сертификата от LetsEncrypt
Выход:
Активация функций конфиденциальности…Ваши сайты будут автоматически обслуживаться по HTTPS с помощью Let's Encrypt.
Продолжая, вы соглашаетесь с Соглашением подписчика Let's Encrypt по адресу:
https: // letsencrypt.org / documents / LE-SA-v1.2-ноября-15-2017.pdf
Пожалуйста, введите свой адрес электронной почты, чтобы подписать соглашение и получать уведомление
в случае проблем. Вы можете оставить поле пустым, но мы не рекомендуем это делать.
Адрес электронной почты: [электронная почта защищена]
…
это оно! Ваш веб-сайт теперь запущен и работает. Вы можете посетить поддомен.пример.com и он будет автоматически перенаправлен на HTTPS без каких-либо настраиваемых номеров портов и других нюансов.
Это так просто! Вы можете CTRL + C, чтобы остановить сервер, в следующий раз он просто повторно использует этот сертификат.
Шаг 4: написание файла Caddyfile
Вышеупомянутый метод хорош для экспериментальных случаев использования, когда вы просто тестируете воду. Но если вам нужен работающий веб-сервер в качестве фонового процесса, вам нужно написать Caddyfile и указать веб-серверу использовать эту конфигурацию для запуска вашего сервера.
Это простейший пример для того же веб-сайта, который мы разместили выше:
субдомен.пример.comкорень / вар / www / mysite
Директива root сообщает веб-серверу, где расположен веб-сайт. Вы не можете выйти из этого каталога со стороны клиента. Как правило, рекомендуется размещать файл caddy где угодно, но не внутри этого корневого веб-каталога. Вы можете поместить его в папку / etc / или в свой домашний каталог. Например, если файл создается в / etc / Caddyfile, вы можете указать серверу использовать эту конфигурацию, выполнив команду:
$ caddy -conf / etc / CaddyfileЕсть несколько директив, которые вы можете использовать для точной настройки вашего сервера. Вы можете включить ведение журнала, сжатие, обратный прокси и т. Д. Официальная документация - хорошее место для начала поиска директив, относящихся к вашему варианту использования. Вот еще один пример, когда обслуживаются два веб-сайта с двумя разными доменными именами:
субдомен.пример.comкорень / вар / www / mysite
subdomain2.пример.com
корень / вар / www / mysite2
gzip
журнал… / доступ.бревно
Директива gzip включает сжатие, если клиент его поддерживает. Это повышает производительность, так как больше данных может быть отправлено по полосе пропускания и за тот же интервал времени. Ведение журнала помогает при отладке и отслеживании сетевой активности.
Заключение
Самая большая сила веб-сервера Caddy - это простота записи и чтения файла конфигурации и его гибкость на различных платформах. Однако из-за странного лицензирования сервер не является строго открытым исходным кодом. Исходный код является открытым, и вы можете полностью скомпилировать его и использовать полученный исполняемый файл, но двоичный файл, который вы получаете с официального сайта, не предназначен для использования в коммерческих целях без надлежащей лицензии.
Это возвращает нас к проблеме осложнений, когда вместо того, чтобы иметь дело только с файлами конфигурации, нам также приходится иметь дело с компиляцией исходного кода, побеждая цель простого в использовании веб-сервера. Сообщите нам, есть ли у вас какие-либо мысли о Caddy и работает ли какой-либо из ваших веб-сайтов на нем.