This repository has been archived on 2026-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
Set-OPS/roles/serveur_nginx/templates/expositions.conf.j2
Daniel Allaire 95698a36c0 Solder la dette doc apres le decouplage moteur/instance
Rafraichir les chemins dans docs secondaires, README de roles, messages,
docstrings : inventories/ -> instance/inventories/, docs/<plan>.yml ->
instance/plan/<plan>.yml. Correction de chemins de playbooks perimes
(preexistants) dans CLAUDE.md/SOLUTION.md : vm_templates/..._prepare|
verify|cleanup -> modeles_vm/..._preparer|verifier|nettoyer, et
confirm_template_cleanup -> template_cleanup_confirm.

Valide : diff vide, ansible-lint 0 echec, make inventaire-verifier.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:04:14 -04:00

46 lines
1.7 KiB
Django/Jinja

# Vhosts derives des applications (champ 'expose' de instance/plan/applications.yml,
# edge depuis instance/plan/domaines.yml) — gere par Set-OPS (role serveur_nginx).
# Ne pas editer a la main.
#
# Un FQDN expose produit un vhost si l'hote de l'application est resolvable :
# amont = http://<IP interne de l'hote de l'application>:<port>. Une exposition
# non resolvable (application sans hote actif, ou sans port) est listee mais
# NON publiee (binding declare, pas encore cablable).
{% for expo in serveur_nginx_expositions | default([]) %}
{% set ns = namespace(amont='') %}
{% if expo.hote in hostvars and hostvars[expo.hote].ansible_host is defined and expo.port %}
{% set ns.amont = 'http://' ~ hostvars[expo.hote].ansible_host ~ ':' ~ expo.port %}
{% endif %}
{% if ns.amont %}
# {{ expo.fqdn }} -> application {{ expo.application }} sur {{ expo.hote }} ({{ ns.amont }})
{% if serveur_nginx_redirection_http | bool %}
server {
listen 80;
listen [::]:80;
server_name {{ expo.fqdn }};
return 301 https://$host$request_uri;
}
{% endif %}
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name {{ expo.fqdn }};
ssl_certificate {{ serveur_nginx_certificat }};
ssl_certificate_key {{ serveur_nginx_cle }};
location / {
proxy_pass {{ ns.amont }};
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
{% else %}
# (non publie) {{ expo.fqdn }} -> application {{ expo.application }} : amont non resolvable (hote sans IP active ou sans port).
{% endif %}
{% endfor %}