Keeps the reverse-proxy config versioned; hardcoded container IP caused 503 after every stack rebuild.
deploy/apache — vhost для mapmil.deepfishing.ru
Источник истины для Apache-виртхоста, который проксирует домен на стек MapMil.
Что здесь
mapmil.conf— vhostmapmil.deepfishing.ru(apache2→ca-frontend:80)
Архитектура
apache2— отдельный контейнер (не изdocker-compose.ymlэтого репо).- Он подключён к сети
mapmil_default, создаваемой compose-стеком MapMil. - Бэкенд адресуется по имени сервиса
ca-frontend, не по IP. IP контейнера меняется при пересборке → хардкод IP даёт 503 (Connection refused).
Применение на сервере (beget)
cd ~/Projects/MapMil
CONF=/usr/local/apache2/conf/conf-enabled/mapmil.conf
# 1. Бэкап текущего конфига в контейнере
docker exec apache2 cp "$CONF" "$CONF.bak"
# 2. Скопировать актуальный vhost из репо внутрь контейнера
docker cp deploy/apache/mapmil.conf apache2:"$CONF"
# 3. Проверить и перезагрузить Apache
docker exec apache2 httpd -t
docker exec apache2 httpd -k graceful
# 4. Проверить сайт
curl -s -o /dev/null -w "%{http_code}\n" https://mapmil.deepfishing.ru/ # 200
Если сайт отдаёт 503
Проверить, что в конфиге нет хардкода IP:
docker exec apache2 grep -n "ca-frontend\|172\." "$CONF"
docker exec apache2 tail -20 /usr/local/apache2/logs/mapmil-error.log
Признак: AH00957: attempt to connect to 172.x.x.x:80 failed.
Лечение — применить mapmil.conf из репо (см. выше).
TODO
- Автоматизировать копирование конфига при деплое (сейчас вручную).
- Рассмотреть подключение
deploy/apache/как volume в контейнерapache2, чтобы конфиг не терялся при его пересоздании.