Как да инсталирате уеб сървъра Caddy на Linux

В наши дни HTTPS е ключов при хостинг на уебсайт. Без него вашите потребители биха могли да изтекат много лични данни от вашия уебсайт в света. За да решат това, много уеб администратори на Linux са използвали инструментите LetsEncrypt, тъй като те правят много лесно генерирането на сертификат. И все пак, колкото и лесно да е LetsEncrpyt, активирането му на Nginx или Apache на Linux все още може да бъде малко скучна работа. За щастие има по-добър начин. Представяме ви уеб сървъра на Caddy. Това е уеб сървър, който има активиран HTTPS по подразбиране. Ако ви е писнало да се карате със SSL сертификати, Caddy може да е точно това, от което се нуждаете.

Инсталиране на Caddy

Инсталирането на уеб сървъра на Caddy работи почти по същия начин, независимо каква сървърна операционна система използвате. Причината, поради която Caddy е толкова лесен за инсталиране, е изборът на разработчика да използва Bash скрипт за изтегляне за инсталиране на софтуера, вместо да добавя софтуерни хранилища на трети страни или да инсталира чрез двоични файлове.

В този урок ще използваме Ubuntu Server, въпреки че стартирането на уеб сървъра Caddy ще работи добре и на повечето други операционни системи Linux, дори на настолни. За да започнете, уверете се, че имате приложението Curl на вашия компютър с Linux. Ако не го направите, отворете терминал, потърсете вашия мениджър на пакети за „curl“ и го инсталирайте.

  Как да отстраните грешки в Linux Bash скриптове с ShellCheck

Забележка: определете дали вече имате curl, като стартирате curl в терминала. Ако диалоговият прозорец „помощ“ се покаже за програмата, имате Curl на вашата Linux машина.

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 е инсталиран на сървъра. Следващата стъпка в процеса е да конфигурирате структурата на директорията. Започнете с получаване на root терминал. Това ще направи модифицирането на папки във файловата система много по-бързо, тъй като няма да е необходимо да въвеждате sudo за всяка команда, последвана от парола.

  Как да инсталирате Linux от телефон с Android с DriveDroid

В повечето системи потребителите могат да влизат директно в root акаунта с:

su

На сървъра на Ubuntu обаче Root акаунтът е заключен от съображения за сигурност. За да заобиколите това, спечелете 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 init. Въпреки това, тъй като уеб сървърът се инсталира чрез Bash скрипт, файл systemd не присъства. Вместо това ще трябва да направим своя собствена. Използвайте командата за докосване, за да създадете нов, празен служебен файл.

touch /lib/systemd/system/caddy.service

Отворете новия файл caddy.service и поставете следния код в него:

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

[Service]
Рестартиране=при отказ
StartLimitInterval=86400
StartLimitBurst=5

  7-те най-добри инструменти за уеб камера за потребители на Linux

Потребител=www-данни
Група=www-данни
; Сертификатите, издадени от 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 или по-нова версия.
; Те допълнително ограничават привилегиите, които могат да бъдат получени от caddy. Декоментирайте, ако желаете.
; Имайте предвид, че може да се наложи да добавите възможности, изисквани от всички използвани плъгини.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true

[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 {
root /var/www/test-domain.org
}

Рестартирайте услугата Caddy systemd, за да запазите промените. Когато услугата приключи с рестартирането, Caddy е готов за използване на вашия сървър.

systemctl restart caddy.service