Aller au contenu

LXC 206 – Sites Web + Flask

Informations générales

  • Nom : Sites Web + Flask
  • IP : 192.168.1.206
  • Type : LXC
  • OS : Debian
  • Rôle : Hébergement de sites web statiques et applications Flask

Services installés

  • Nginx
  • Serveur web principal
  • Ports : 80 (HTTP), 443 (HTTPS via reverse proxy si configuré)

  • Flask (Python)

  • Applications web Python servies en WSGI
  • Démarrées via Gunicorn ou uWSGI selon config

Configuration

  • Racine web : /var/www/html/
  • Sites Flask :
  • Code source dans /opt/flaskapps/
  • Chaque app Flask possède :

    • app.py (ou équivalent)
    • fichier wsgi.py ou lancement via Gunicorn
    • unit systemd pour auto-start
  • Nginx configs :

  • /etc/nginx/sites-available/
  • /etc/nginx/sites-enabled/

  • Logs :

  • /var/log/nginx/access.log
  • /var/log/nginx/error.log
  • /var/log/flask/ (si configuré)

Sauvegardes

Répertoires critiques :
- /etc/nginx/ (configs web)
- /opt/flaskapps/ (applications)
- /var/www/html/ (sites statiques)

⚠️ Certificats SSL sont gérés par le reverse proxy Nginx (LXC 207).


Supervision

  • Ports/services critiques :
  • 80 (HTTP local)
  • 443 (si SSL direct)

  • Nagios4 (LXC 210) :

  • Vérification HTTP sur 192.168.1.206
  • Vérification applicative Flask (retour code 200 sur /health si existant)

Commandes utiles

# Vérifier services
systemctl status nginx
systemctl status flask-app1   # exemple unit systemd

# Redémarrer
systemctl restart nginx
systemctl restart flask-app1

# Vérifier config Nginx
nginx -t

# Vérifier écoute
ss -tulpn | grep 80
ss -tulpn | grep 443

# Logs
tail -f /var/log/nginx/error.log
journalctl -u flask-app1 -f

Notes

  • Les applis Flask sont proxies par Nginx (upstream local sur 127.0.0.1:XXXX).
  • Pour déployer une nouvelle app Flask :

  • Créer dossier /opt/flaskapps/monapp/

  • Installer dépendances pip install -r requirements.txt
  • Créer unit systemd flask-monapp.service
  • Ajouter config Nginx correspondante
  • Accès externe se fait via LXC 207 (Reverse Proxy Nginx + Certbot).