Darkhttpd – это легкий, однобинарный демон веб-сервера для Linux. Он обеспечивает простой способ развертывания веб-сайтов на вашем сервере с нулевыми настройками. Здесь мы покажем вам, как установить darkhttpd на Ubuntu Linux, как он конкурирует с популярными веб-серверами, и проведем вас через процесс создания вашего первого сайта.
Darkhttpd vs Apache vs Nginx
Darkhttpd – не единственный веб-сервер, который вы можете установить на свою машину Linux. Существуют Apache, Nginx, Caddy, Lighttpd и многие другие. В этом разделе мы сравним darkhttpd с Apache и Nginx и посмотрим, как он работает.
Что касается простоты использования, то darkhttpd полностью выигрывает у Apache и Nginx. Darkhttpd фокусируется на том, чтобы все было в одной программе. Это означает, что вы можете поделиться своим сайтом, не беспокоясь о его конфигурации и службе init вашей системы.
С точки зрения безопасности darkhttpd использует chroot
для своих файлов. В нем также есть автоматические таймауты для неработающих соединений и базовое протоколирование. Это далеко не так, как в Apache и Nginx. Оба они имеют мощные фильтры ограничения скорости и опции для тонкой настройки HTTP-заголовков на своих сайтах.
Простота Darkhttpd также делает его негибким к пользовательским требованиям. Разработчики программы создавали ее как быстрый способ обслуживания статического веб-контента. Это означает, что, по сравнению с Apache и Nginx, darkhttpd не может выполнять CGI-скрипты или выступать в качестве обратного прокси для ваших приложений.


Установка и запуск darkhttpd
Перейдите в свой домашний каталог, затем установите последнюю версию darkhttpd в свою систему:
cd ~ && git clone https://github.com/emikulic/darkhttpd.git
Перейдите во внутреннюю часть Git-репо, затем создайте новый файл Docker Compose с помощью вашего любимого текстового редактора:
cd darkhttpd && nano ./docker-compose.yml
Вставьте следующий блок кода в ваш Compose-файл:
services: darkhttpd: container_name: darkhttpd-website build: context: . dockerfile: Dockerfile volumes: - "./html:/var/www/htdocs:ro" ports: - "8080:80"
Сохраните новый файл Compose, а затем выполните следующую команду для сборки и запуска Docker-контейнера darkhttpd:
sudo docker compose up -d
Создайте папку «html» в репозитории darkhttpd Linux, затем скопируйте в нее файлы статического сайта:
mkdir ./html/ cp -rv ~/my-website ./html/
Убедитесь, что darkhttpd работает правильно, перечислив доступные контейнеры в системе:
docker ps

На заметку: Узнайте, как перенести существующие контейнеры Docker на новый хост системы.
Запуск darkhttpd по SSL с помощью stunnel
На данный момент у вас есть запущенный сервер darkhttpd на порту 8080. Однако, чтобы получить доступ к нему через интернет, вам нужно сначала инкапсулировать его в SSL через обратный прокси.
Для начала создайте новую A-запись DNS для вашего домена, указывающую на IPv4-адрес вашего darkhttpd. В моем случае я укажу IPv4-адрес моей машины на эту запись: «web.myvpsserver.top».
Найдите и установите stunnel, пакет snap «core» и Certbot на вашу машину:
sudo apt install stunnel4 sudo snap install core && sudo snap install certbot --classic
Зарегистрируйте свой экземпляр darkhttpd в Electronic Frontier Foundation:
sudo certbot register --agree-tos -m YOUR-EMAIL@ADDRESS.HERE
Сгенерируйте голый SSL-сертификат для своего доменного имени:
sudo certbot certonly --standalone -d SUBDOMAIN.YOUR-DOMAIN.ROOT
Создайте новый файл конфигурации для обратного прокси-сервера stunnel:
sudo nano /etc/stunnel/stunnel.conf
Вставьте следующий блок кода в новый файл конфигурации:
output = /var/log/stunnel4/stunnel.log cert = /etc/letsencrypt/live/SUBDOMAIN.YOUR-ROOT.DOMAIN/fullchain.pem key = /etc/letsencrypt/live/SUBDOMAIN.YOUR-ROOT.DOMAIN/privkey.pem [https] client = no accept = 443 connect = 8080
Сохраните новый файл конфигурации, а затем выполните следующую команду для запуска обратного прокси:
sudo systemctl start stunnel4.service

Убедитесь, что ваш статический веб-сайт теперь работает правильно, открыв свой поддомен в веб-браузере.

Размещение собственного простого сайта с помощью darkhttpd – это только первый шаг в изучении удивительного мира веб-сервисов для самостоятельного хостинга.
Комментарии (0)