Как создать простой веб-сервер с помощью darkhttpd

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 – это только первый шаг в изучении удивительного мира веб-сервисов для самостоятельного хостинга.

Зарубин Иван Эксперт по Linux и Windows

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

Вдохновлен www.maketecheasier.com

Похожие статьи

Комментарии (0)