Мы все там были. Берешь свежий VPS, ставишь Docker и задумываешься: «А чем рулить доменами и SSL?». Тратить полдня на ручные конфиги Nginx и certbot в 2026 году — моветон.

Боль и страдания GUI-решений

Первая мысль — Nginx Proxy Manager (NPM). Удобно, красиво, мышка кликает. Но потом начинается ад:

  • Лишние сущности: Пробрасывать кучу портов просто ради админки.

  • Оверинжиниринг: База данных (SQLite/MySQL) только для того, чтобы хранить конфиг реверс-прокси. Серьезно?

  • Скрытая сложность: Половина тонких настроек (вроде кастомных кешей или хитрых реврайтов) всё равно делается через «Advanced -> Custom Nginx Configuration» вслепую.

  • Жор ресурсов: Запустите NPM на машине с 1GB RAM и посмотрите, как ему «весело».

А если взять Traefik? Тоже здорово, но порог входа с его лейблами и провайдерами иногда заставляет плакать кровавыми слезами, когда нужно просто отдать статику с кешированием или настроить банальный ресайз картинок.


💡 Решение: Возврат к истокам, но с комфортом

Я фанат философии KISS (Keep It Simple, Stupid). Зачем усложнять то, что Nginx и Bash делают идеально десятилетиями? Так родился мой nginx-template.

Этот проект — не очередной GUI. Это легковесный Docker-стек (Nginx + Certbot) и единый «пульт управления» в виде скрипта manage.sh.

Проверено в бою

Важный момент: Это не просто теоретическая поделка. Я лично содержу на этом стеке уже 5 продакшн-сайтов. Решение стабильно, предсказуемо и не требует лишней возни.

Магия одной команды

Суть проста: вы клонируете репозиторий, а дальше управляете всем прямо из терминала.

1. Добавить обычный сайт с авто-SSL:

./manage.sh add example.com 3000 my.email@example.com

Скрипт сам сгенерирует конфиг из шаблона, пнет Certbot, дождется сертификатов от Let's Encrypt и сделает мягкий reload Nginx. Никаких прерываний трафика.

2. Поднять собственную CDN-ноду с умным кешированием:

./manage.sh cdn static.domain.com https://origin-server.com

3. Image Proxy (ресайз на лету):
Моя любимая фича. Больше никаких тяжелых микросервисов для обрезки картинок. Nginx с модулем image-filter умеет это сам.

./manage.sh img media.domain.com https://my-bucket.s3.amazonaws.com

Теперь вы можете запрашивать: media.domain.com/image.jpg?w=800&h=600, и Nginx отдаст вам аккуратно отресайженную и закешированную копию.


🛠 Что под капотом (и почему это круче NPM)

Я не стал изобретать велосипед, я просто собрал лучшие практики в один шаблон. Загляните в manage.sh — это кристально понятный роутер команд:

# Фрагмент manage.sh
case "$1" in
    add)
        "$SCRIPTS_DIR/add-site-letsencrypt.sh" "$2" "$3" "$4"
        ;;
    cdn)
        "$SCRIPTS_DIR/add-cdn-site.sh" "$2" "$3" "$4"
        ;;
    img)
        "$SCRIPTS_DIR/add-image-proxy.sh" "$2" "$3" "$4"
        ;;
esac

Главные преимущества:

  • Безопасность A+: Шаблоны уже включают HSTS, защиту от XSS, сниффинга MIME-типов и блокировку популярных эксплойтов. Вы получаете A+ на SSL Labs по дефолту.

  • Cloudflare-friendly: Скрипт ./manage.sh update-cf-ips сам скачивает актуальные подсети Cloudflare и обновляет конфиг set_real_ip_from. Больше никаких левых IP в логах!

  • Аналитика в терминале: Команда ./manage.sh top разберет access.log и покажет вам топ IP-адресов, долбящих ваш сервер прямо сейчас.

  • Легковесность: Никаких Node.js или БД. Потребление памяти стремится к ресурсам голого Nginx.


💰 Профит

Вы получаете контроль. Когда что-то идет не так (а оно всегда идет), вы не дебажите базу данных веб-админки. Вы просто открываете чистые, аккуратно сгенерированные файлы в /nginx/sites/ и сразу видите, где проблема.

Это решение для инженеров, которые ценят своё время, ресурсы сервера и предсказуемость инфраструктуры.

🚀 Попробуйте сами

Если вас тоже воротит от монструозных комбайнов для настройки простого проксирования — забирайте шаблон себе.

🔗 GitHub: Arlandaren/nginx-template

Клонируйте, разворачивайте, поднимайте сайты одной командой. Если этот репозиторий сэкономит вам хотя бы 10 минут жизни — закиньте звезду на GitHub. Это дико мотивирует пилить новые фичи в Open Source! ⭐