feat: implémentation initiale du reverse proxy de maintenance
Reverse proxy Nginx (image stable-alpine) qui sert l'app upstream ou une page de maintenance 503 selon l'IP du client. - Modes whitelist/blacklist commutables via MAINTENANCE_MODE - Liste IPv4 via MAINTENANCE_IP_LIST (séparée par virgules, validée au boot) - Logique en directives Nginx natives (geo + map), zéro Lua/njs - Page statique sobre HTML+CSS inline, zéro JS, zéro réseau sortant - Log dédié /var/log/nginx/maintenance.log pour les requêtes bloquées - Validation des env vars dans /docker-entrypoint.d/10-init.sh - Stack Docker + docker-compose pour dev local et tests - 6 cas de tests d'intégration (whitelist/blacklist x autorisée/bloquée + log + nginx -t) - Lint shellcheck propre sur tous les scripts shell
This commit is contained in:
Executable
+15
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
# Mode blacklist + IP du client présente → page de maintenance (503).
|
||||
|
||||
set -euo pipefail
|
||||
# shellcheck source-path=SCRIPTDIR
|
||||
# shellcheck source=../lib.sh
|
||||
source "$(dirname "$0")/../lib.sh"
|
||||
|
||||
restart_proxy blacklist "172.28.5.50"
|
||||
|
||||
status="$(curl_status)"
|
||||
assert_eq "503" "$status" "code HTTP"
|
||||
|
||||
body="$(curl_body)"
|
||||
assert_contains "Site en maintenance" "$body" "corps de la page de maintenance"
|
||||
Reference in New Issue
Block a user