Комментарии 12
Файловые конфиги вроде Nginx для такого проекта не нужны, в контейнерную эпоху рассматривают хотя бы Traefik.
Подскажите, а чтобы php добавить, чтобы форум работал - это куда копать?
Идея статьи отличная, а инструкция которая вроде как должна быть простой - усложнена.
Докер ставится одной командой - curl
https://get.docker.com
| sh
а в docker-compose.yml используем valian/docker-nginx-auto-ssl
services:
nginx:
image: valian/docker-nginx-auto-ssl
environment:
ALLOWED_DOMAINS: '*'
volumes:
- ./site:/var/www/default
- ./.cache/nginx/ssl:/etc/resty-auto-ssl
# - ./openresty.conf:/usr/local/openresty/nginx/conf/server-proxy.conf
# network_mode: host
ports:
- 443:443
- 80:80
restart: always
logging:
driver: json-file
options:
max-file: '3'
и можно не думать про обновление сертификатов
А не надо добавить капчу и cloudflare, чтобы сайт не ддосили всякие хакеры?
Nginx и Certbot можно заменить на Angie - он умеет получать сертификаты по ACME и проксировать трафик в контейнеры на основании указанных labels.
А мне нравится Caddy. Минимум конфига и ssl из коробки. Сейчас, правда, перешёл на traefik для роута разных приложений. Но если бы мне нужно было сделать именно что сайт, то точно Caddy.
Пользую vim и не должен был, по идее, читать эту статью, но когда мне надо было недавно прикрутить tls к forgejo я поставил Caddy просто потому, что он проще в настройке и обновлении сертиикатов (правда, через месяц поставил рядом кастомный openbao vault-agent для получения сертификатов из kv хранилища, но это уже совсем другая история)
При всей моей любви к nginx считаю, что он не нужен для новичков, особенно в докере т.к. на моей практике большинство проблем с автообновлением и конфигурированием nginx в принципе, как раз таки в этой связке и другие комментаторы накидали действительно годные варианты для использования в данном проекте
Почему nginx + docker плохи для новичка? Его надо уметь готовить и правильно настраивать, в заголовке статьи написано "Docker, Nginx и Certbot" и отдельный пунктик на "замочке", но при этом
сертификат получается руками
certbot запускается как /bin/sh и не работает в фоне, не отслеживает протухание сертификатов
nginx не получает команду на перечитывание конфигов при обновлении сертификатов
в итоге через несколько месяцев LE сертификат "протухнет" а автоматическое обновление мы в данной статье так и не настроили и вместо рыжих предупреждений сайт вообще не откроется и надо будет нажимать в определенных местах для открытия сайта с невалидным сертификатом
Еще для новичков и если надо больше 1 сайта проксировать я предлагаю NPM как раз по причине легкой настройки и работе с certbot "из коробки"
Как запустить сайт с Docker, Nginx и Certbot: полный гайд