Outils pour utilisateurs

Outils du site


admin:procedures:ajout-host-reverse-proxy-nginx

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
admin:procedures:ajout-host-reverse-proxy-nginx [2017/07/12 09:33] – créée fpoulainadmin:procedures:ajout-host-reverse-proxy-nginx [2023/02/22 11:04] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. 87.250.224.50
Ligne 3: Ligne 3:
 On suppose l'ajout d'un host répondant au fqdn ''bling.chapril.org''. On suppose l'ajout d'un host répondant au fqdn ''bling.chapril.org''.
  
 +Les manipulations sont à faire sur le [[admin:machines_virtuelles:bastion|bastion]].
 +
 +<note important>Doc écrite a posteriori mais pas encore testée. Merci de retirer ce bandeau lorsqu'elle sera déplombée et sans faille.</note>
 ===== Prérequis ===== ===== Prérequis =====
  
   * Avoir un enregistrement DNS qui résoud ''bling.chapril.org'' vers ''fip.chapril.org'' depuis l'extérieur. Typiquement un ''bling  CNAME   fip''. Si ce n'est pas fait, voir ici : [[admin:procedures:ajout-record-dns|Ajout d'un enregistrement à la zone DNS]].   * Avoir un enregistrement DNS qui résoud ''bling.chapril.org'' vers ''fip.chapril.org'' depuis l'extérieur. Typiquement un ''bling  CNAME   fip''. Si ce n'est pas fait, voir ici : [[admin:procedures:ajout-record-dns|Ajout d'un enregistrement à la zone DNS]].
 +
 +===== Création de l'host =====
 +
 +Définir le fichier suivant :
 +<code C /etc/nginx/sites-available/bling.chapril.org>
 +server {
 +    listen 80;
 +    listen [::]:80;
 +
 +    server_name bling.chapril.org; 
 +
 +    access_log /var/log/nginx/bling.chapril.org/bling.chapril.org.access_log;
 +    error_log /var/log/nginx/bling.chapril.org/bling.chapril.org.error_log;
 +
 +    include /etc/nginx/acme-challenge;
 +    include /etc/nginx/sexy-chapril;
 +}
 +</code>
 +et créer le dossier de logs :
 +  mkdir /var/log/nginx/bling.chapril.org/
 +
 +On active la configuration via un lien symbolique :
 +  ln -sf /etc/nginx/sites-available/bling.chapril.org /etc/nginx/sites-enabled/bling.chapril.org
 +
 +On teste la conf nginx :
 +  # nginx -t
 +  nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
 +  nginx: configuration file /etc/nginx/nginx.conf test is successful
 +
 +On recharge nginx :
 +  systemctl reload nginx
 +
 +
 +===== Obtention d'un certificat TLS =====
 +
 +On ajoute dans /etc/dehydrated/domains.txt :
 +<code conf /etc/dehydrated/domains.txt>
 +bling.chapril.org
 +</code>
 +
 +Puis on exécute dehydrated, notre client letsencrypt :
 +  dehydrated -c
 +
 +Le couple clé/certificat obtenu est dans /var/lib/dehydrated/certs/bling.chapril.org
 +
 +===== Déploiement de l'host avec TLS =====
 +
 +On ajoute une redirection systématique à la fin de la section server de la définition de l'hote dans nginx :
 +<code C /etc/nginx/sites-available/bling.chapril.org>
 +    include /etc/nginx/acme-challenge;
 +    include /etc/nginx/sexy-chapril;
 +
 +    # rewrite ^(.*)$ https://$host$request_uri permanent;
 +    include /etc/nginx/force-ssl;
 +}
 +</code>
 +
 +Puis on définit une seconde section server écoutant sur le port 443 :
 +<code C /etc/nginx/sites-available/bling.chapril.org>
 +server {
 +    listen 443 ssl;
 +    listen [::]:443 ssl;
 +
 +    server_name bling.chapril.org;
 +
 +    access_log /var/log/nginx/bling.chapril.org/bling.chapril.org.access_log;
 +    error_log /var/log/nginx/bling.chapril.org/bling.chapril.org.error_log;
 +
 +    ssl_certificate     /var/lib/dehydrated/certs/bling.chapril.org/fullchain.pem;
 +    ssl_certificate_key /var/lib/dehydrated/certs/bling.chapril.org/privkey.pem;
 +
 +    include /etc/nginx/acme-challenge;
 +    include /etc/nginx/sexy-chapril;
 +
 +    location / {
 +        # remplacer par le nom de la machine qui héberge le service :
 +        proxy_pass http://bling;
 +    }
 +}
 +</code>
 +
 +On teste la conf nginx :
 +  # nginx -t
 +  nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
 +  nginx: configuration file /etc/nginx/nginx.conf test is successful
 +
 +On recharge nginx :
 +  systemctl reload nginx
 +
 +Et normalement l'host est fonctionnel. ''curl -i'' ou ''curl -I'' sont vos amis pour le debug.
 +
 +===== Monitoring =====
 +
 +Il faut impérativement penser à [[admin:monitoring:add-host|monitorer]] le service une fois terminé.
 +
 +Il suffit pour cela, sur la machine [[admin:machines_virtuelles:admin|admin]], dans le fichier ''/etc/icinga2/zones.d/master/cluster/bling.conf'' (remplacer bling par le nom de la machine concernée) d'ajouter quelque chose comme :
 +<code bash /etc/icinga2/zones.d/master/cluster/bling.conf >
 +  vars.http_vhosts["Bling page"] = {
 +    http_vhost = "bling.chapril.org"
 +    http_uri = "/"
 +    http_string = "<title>bling !</title>"
 +    http_ssl = true
 +  }
 +</code>
 +
 +Si vous avez des besoins exotiques, n'hésitez pas à jeter un œil à la doc : https://docs.icinga.com/icinga2/latest/doc/module/icinga2/chapter/plugin-check-commands#plugin-check-command-http
 +
 +On teste la conf :
 +  icinga2 daemon -C
 +
 +Et on reload Icinga :
 +  /etc/init.d/icinga2 reload
admin/procedures/ajout-host-reverse-proxy-nginx.1499852001.txt.gz · Dernière modification : 2017/07/12 09:33 de fpoulain