Как установить Caddy Web Server в Linux

В наши дни HTTPS является ключевым при размещении веб-сайта. Без него ваши пользователи могли бы передавать очень личные данные с вашего сайта в мир. Чтобы решить эту проблему, многие веб-мастера Linux начали использовать инструменты LetsEncrypt, поскольку они упрощают создание сертификата. Тем не менее, несмотря на простоту LetsEncrpyt, включение его в Nginx или Apache в Linux может оказаться довольно сложной задачей. К счастью, есть способ получше. Представляем веб-сервер Caddy. Это веб-сервер, на котором по умолчанию включен HTTPS. Если вам надоело возиться с SSL-сертификатами, Caddy может быть именно тем, что вам нужно.

Установка Caddy

Установка веб-сервера Caddy работает практически одинаково, независимо от того, какую операционную систему сервера вы используете. Причина, по которой Caddy настолько проста в установке, заключается в том, что разработчик решил использовать загружаемый сценарий Bash для установки программного обеспечения, а не добавлять сторонние репозитории программного обеспечения или устанавливать через двоичные файлы.

В этом руководстве мы будем использовать Ubuntu Server, хотя запуск веб-сервера Caddy будет отлично работать и на большинстве других ОС Linux, даже на настольных. Для начала убедитесь, что на вашем компьютере с Linux установлено приложение Curl. Если вы этого не сделаете, откройте терминал, найдите в диспетчере пакетов слово «curl» и установите его.

  Как запустить KDE Plasma Mobile в VirtualBox в Linux

Примечание: определите, есть ли у вас curl, запустив curl в терминале. Если для программы отображается диалоговое окно «Помощь», значит, на вашем компьютере с Linux установлен Curl.

curl https://getcaddy.com | bash -s personal

Веб-сервер Caddy можно использовать в личных целях бесплатно, но вы должны указать это. Планируете использовать Caddy в корпоративной среде? Запустите команду установки:

curl https://getcaddy.com | bash -s commercial

Запуск Curl направит его через Bash и автоматически запустит процесс установки. Установщику Caddy потребуется время, чтобы загрузить двоичный файл веб-сервера и поместить его в каталог / usr / local / bin /. Если установка прошла успешно, вы увидите сообщение «Установлено успешно».

На этом этапе вам нужно изменить двоичный файл Caddy. Выполните следующую команду в терминале с привилегиями sudo.

sudo setcap cap_net_bind_service=+ep /usr/local/bin/caddy

Настройка Caddy

Caddy установлен на сервере. Следующим шагом в этом процессе является настройка структуры каталогов. Начните с получения корневого терминала. Это значительно ускорит изменение папок в файловой системе, так как вам не нужно будет вводить sudo для каждой команды с последующим паролем.

В большинстве систем пользователи могут войти непосредственно в учетную запись root с помощью:

su

Однако на сервере Ubuntu учетная запись Root заблокирована по соображениям безопасности. Чтобы обойти это, получите корневую оболочку с помощью sudo.

sudo -s

Теперь, когда у нас есть root-доступ, создайте необходимые каталоги для правильной работы сервера Caddy.

mkdir /etc/caddy

mkdir /etc/ssl/caddy

Примечание. Если на вашем сервере уже есть каталог / var / www /, пропустите эту последнюю команду mkdir.

mkdir /var/www

Затем создайте новый «Caddyfile» внутри / etc / caddy /.

touch /etc/caddy/Caddyfile

С помощью команды chmod обновите разрешения для подпапки Caddy внутри / etc / ssl /.

chmod 0770 /etc/ssl/caddy

Наконец, откройте каталог / var / www /:

chown www-data: /var/www

Файл Caddy Systemd

Большинство серверов, особенно сервер Ubuntu, интенсивно используют систему инициализации systemd. Однако, поскольку веб-сервер устанавливается через сценарий Bash, файла systemd нет. Вместо этого нам нужно сделать свои собственные. Используйте команду touch, чтобы создать новый пустой служебный файл.

touch /lib/systemd/system/caddy.service

Откройте новый файл caddy.service и вставьте в него следующий код:

  Как играть в Splitgate (бета) в Linux

[Unit]
Описание = Веб-сервер Caddy HTTP / 2
Документация = https: //caddyserver.com/docs
После = network-online.target
Хочет = network-online.target

[Service]
Перезапуск = при сбое
StartLimitInterval = 86400
StartLimitBurst = 5

Пользователь = www-data
Группа = www-data
; Сертификаты, выпущенные Letsencrypt, будут записаны в этот каталог.
Среда = CADDYPATH = / etc / ssl / caddy

ExecStart = / usr / local / bin / caddy -log stdout -agree = true -conf = / etc / caddy / Caddyfile -root = / var / tmp
ExecReload = / bin / kill -USR1 $ MAINPID

LimitNOFILE = 1048576
LimitNPROC = 64

PrivateTmp = true
PrivateDevices = true
ProtectHome = true
ProtectSystem = полный
ReadWriteDirectories = / etc / ssl / caddy

; Следующие дополнительные директивы безопасности работают только с systemd v229 или новее.
; Они еще больше ограничивают привилегии, которые может получить Кэдди. Раскомментируйте, если хотите.
; Обратите внимание, что вам, возможно, придется добавить возможности, необходимые для любых используемых плагинов.
; CapabilityBoundingSet = CAP_NET_BIND_SERVICE
; AmbientCapabilities = CAP_NET_BIND_SERVICE
; NoNewPrivileges = true

  Как установить видеоредактор Flowblade для Linux

[Install]
WantedBy = multi-user.target

Для файла caddy.service очень много кода, поэтому постарайтесь, чтобы в нем все было. Если вы уверены, сохраните изменения, нажав комбинацию клавиш Ctrl + X. Выйдите из редактора с помощью Ctrl + X.

systemctl enable caddy.service

systemctl start caddy.service

После настройки systemd все должно быть готово к работе.

Настройка доменов

Caddy, как и любой другой веб-сервер, требует некоторой настройки перед использованием. Начните с создания папки домена:

Примечание: не забудьте переименовать «test-domain.org» в свой домен.

mkdir -p /var/www/test-domain.org/

Затем отредактируйте файл Caddyfile, который мы создали ранее.

nano /etc/caddy/Caddyfile

Вставьте следующий код, чтобы активировать новый домен:

my-domain.com {
корень /var/www/test-domain.org
}

Перезапустите службу Caddy systemd, чтобы сохранить изменения. Когда служба завершит перезапуск, Caddy будет готов к использованию на вашем сервере.

systemctl restart caddy.service