Как установить и настроить 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 :

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!как и ожидалось.

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

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

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

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше