Как да инсталирате и конфигурирате Caddy на CentOS 7

Въведение

Caddy е нововъзникваща програма за уеб сървър с вградена поддръжка за HTTP/2 и автоматичен HTTPS. Имайки предвид лекотата на използване и сигурността, Caddy може да се използва за бързо разгръщане на сайт с активиран HTTPS с един конфигурационен файл.

Предпоставки

Стъпка 1: Инсталирайте най-новата стабилна версия на Caddy

На операционна система Linux, Mac или BSD използвайте следната команда, за да инсталирате най-новата стабилна специфична за системата версия на Caddy:

curl https://getcaddy.com | bash

Когато бъдете подканени, въведете вашата sudo парола, за да завършите инсталацията.

Двоичният файл на Caddy ще бъде инсталиран в /usr/local/binдиректорията. Използвайте следната команда, за да потвърдите:

which caddy

Изходът трябва да бъде:

/usr/local/bin/caddy

От съображения за сигурност НИКОГА не стартирайте двоичния файл на Caddy като root. За да дадете на Caddy възможността да се свързва с привилегировани портове (напр. 80, 443) като не-root потребител, трябва да изпълните setcapкомандата, както следва:

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

Стъпка 2: Конфигурирайте Caddy

Създайте специален системен потребител: caddy и група със същото име за Caddy:

sudo useradd -r -d /var/www -M -s /sbin/nologin caddy

Забележка : Потребителят, caddyсъздаден тук, може да се използва само за управление на услугата Caddy и не може да се използва за влизане.

Създайте домашната директория /var/wwwза уеб сървъра на Caddy и домашната директория /var/www/example.comза вашия сайт:

sudo mkdir -p /var/www/example.com
sudo chown -R caddy:caddy /var/www

Създайте директория за съхранение на SSL сертификати:

sudo mkdir /etc/ssl/caddy
sudo chown -R caddy:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy

Създайте специална директория за съхраняване на конфигурационния файл на Caddy Caddyfile:

sudo mkdir /etc/caddy
sudo chown -R root:caddy /etc/caddy

Създайте конфигурационния файл на Caddy с име Caddyfile:

sudo touch /etc/caddy/Caddyfile
sudo chown caddy:caddy /etc/caddy/Caddyfile
sudo chmod 444 /etc/caddy/Caddyfile
cat <<EOF | sudo tee -a /etc/caddy/Caddyfile
example.com {
    root /var/www/example.com
    gzip
    tls admin@example.com
}
EOF

Забележка : Най- Caddyfileфайл е създаден по-горе е само базова конфигурация за провеждане на статичен уеб сайт. Можете да научите повече за това как да напишете Caddyfile тук .

За да улесните операциите на Caddy, можете да настроите един systemdфайл за Caddy и след това да го използвате systemdза управление на Caddy.

Използвайте viредактора, за да създадете systemdфайла Caddy unit:

sudo vi /etc/systemd/system/caddy.service

Попълнете файла:

[Unit]
Description=Caddy HTTP/2 web server
Documentation=https://caddyserver.com/docs
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
Restart=on-abnormal

; User and group the process will run as.
User=caddy
Group=caddy

; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy

; Always set "-root" to something safe in case it gets forgotten in the Caddyfile.
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp
ExecReload=/bin/kill -USR1 $MAINPID

; Use graceful shutdown with a reasonable timeout
KillMode=mixed
KillSignal=SIGQUIT
TimeoutStopSec=5s

; Limit the number of file descriptors; see `man systemd.exec` for more limit settings.
LimitNOFILE=1048576
; Unmodified caddy is not expected to use more than that.
LimitNPROC=512

; Use private /tmp and /var/tmp, which are discarded after caddy stops.
PrivateTmp=true
; Use a minimal /dev
PrivateDevices=true
; Hide /home, /root, and /run/user. Nobody will steal your SSH-keys.
ProtectHome=true
; Make /usr, /boot, /etc and possibly some more folders read-only.
ProtectSystem=full
; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there.
;   This merely retains r/w access rights, it does not add any new. Must still be writable on the host!
ReadWriteDirectories=/etc/ssl/caddy

; The following additional security directives only work with systemd v229 or later.
; They further retrict privileges that can be gained by caddy. Uncomment if you like.
; Note that you may have to add capabilities required by any plugins in use.
;CapabilityBoundingSet=CAP_NET_BIND_SERVICE
;AmbientCapabilities=CAP_NET_BIND_SERVICE
;NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Запазете и излезте:

:wq!

Стартирайте услугата Caddy и я накарайте да стартира автоматично при стартиране на системата:

sudo systemctl daemon-reload
sudo systemctl start caddy.service
sudo systemctl enable caddy.service

Стъпка 3: Променете правилата на защитната стена

За да позволите на посетителите да имат достъп до вашия сайт на Caddy, трябва да отворите портове 80 и 443:

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Стъпка 4: Създайте тестова страница за вашия сайт

Използвайте следната команда, за да създадете файл с име index.htmlв началната директория на вашия сайт на Caddy:

echo '<h1>Hello World!</h1>' | sudo tee /var/www/example.com/index.html

Рестартирайте услугата Caddy, за да заредите ново съдържание:

sudo systemctl restart caddy.service

Накрая насочете уеб браузъра си към http://example.comили https://example.com. Трябва да видите съобщението, Hello World!както се очаква.

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

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

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече