# Vhosts derives des applications (champ 'expose' de docs/applications.yml, # edge depuis docs/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://:. 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 %}