Files
gitrusprus 396e4ee4b9 Add MapMil Apache vhost to repo (ca-frontend by name, not IP)
Keeps the reverse-proxy config versioned; hardcoded container IP caused
503 after every stack rebuild.
2026-09-13 20:23:27 +00:00

2.1 KiB

deploy/apache — vhost для mapmil.deepfishing.ru

Источник истины для Apache-виртхоста, который проксирует домен на стек MapMil.

Что здесь

  • mapmil.conf — vhost mapmil.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, чтобы конфиг не терялся при его пересоздании.