Outils pour utilisateurs

Outils du site


sysadmin:docker:nginx

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
sysadmin:docker:nginx [2021/02/27 20:54] 77.192.232.26sysadmin:docker:nginx [2021/02/28 18:30] (Version actuelle) 77.192.232.26
Ligne 16: Ligne 16:
  
 ===== Modifier la configuration ===== ===== Modifier la configuration =====
 + 
 Il est possible d'extraire le fichier de configuration par défaut du container, de le modifier et de relancer un conteneur avec la nouvelle configuration: Il est possible d'extraire le fichier de configuration par défaut du container, de le modifier et de relancer un conteneur avec la nouvelle configuration:
  
Ligne 37: Ligne 37:
 </code> </code>
  
-Une fois le fichier de configuration modifié, il également être intégré à une image personnalisée via un Dockerfile:+On peut faire également faire le choix d'ouvrir un terminal interactif et de modifier le fichier de configuration depuis l’intérieur conteneur car celui-ci contient un système minimal Alpine Linux et un shell:
  
 +<code bash>
 +docker exec --tty --interactive container_name /bin/sh
 +</code>
 +
 +Une fois dans le conteneur, on modifie le fichier **/etc/nginx/conf.d/default.conf**
 +
 +Pour charger la nouvelle configuration:
 +
 +<code bash>
 +# demander au processus en cours d’exécution de recharger la conf modifiée
 +nginx -s reload
 +</code>
 +
 +Une fois le fichier de configuration souhaité obtenu, on pourra l'extraire du conteneur avec la commande **docker cp** puis l'utiliser pour générer une image personnalisée via un Dockerfile:
 +
 +<code bash>
 +# copier le fichier du conteneur dans le répertoire courant
 +docker cp container_name:/etc/nginx/conf.d/default.conf .
 +</code>
 +
 +Le Dockerfile ci-dessous utilisera la nouvelle configuration valide:
 <file> <file>
-FROM nginx+FROM nginx:stable-alpine
 COPY default.conf /etc/nginx/conf.d/default.conf COPY default.conf /etc/nginx/conf.d/default.conf
 ... ...
Ligne 150: Ligne 171:
 </file> </file>
  
-nginx retourne une erreur car la connexion est interrompue par le sous programme FastCGI. +Cette erreur s'est produite lorsque: 
-On peut augmenter les valeurs de timeout par défaut via les variables de configuration d'nginx:+  - La configuration de la localisation sous nginx ne mentionnait pas le répertoire contenant les script via la directive **root**; 
 +  - Le script CGI ne commençait pas sa réponse avec un header minimal Content-type suivi de 2 retours à la ligne; 
 + 
 +<file>
  
-<file conf> 
 server { server {
   # ...   # ...
-  client_body_timeout 2s+   
-  client_header_timeout 2s;+  location /info { 
 +    gzip off
 +    root /srv/fcgiwrap; 
 +    access_log on;           # pour ne pas logger les accès  
 +    autoindex off;           # empeche l'indexation et affichage des dossier du serveur 
 +    # include fastcgi_params;  # contient les noms des variables CGI /etc/nginx/fastcgi_params; 
 +    fastcgi_param SCRIPT_FILENAME /srv/fcgiwrap/service_info.sh; 
 +    fastcgi_pass unix:/run/fcgiwrap.sock; 
 +    } 
   # ...   # ...
 +
 } }
 </file> </file>
  
-relire la cnfiguration+Le script shell doit commencer par retourner le header minimal
 <code bash> <code bash>
-nginx -s reload+#!/bin/sh 
 +echo "Content-type: text/html" 
 +echo "" 
 +echo "" 
 + 
 +...
 </code> </code>
 +
 ===== Références ===== ===== Références =====
  
sysadmin/docker/nginx.1614459287.txt.gz · Dernière modification : 2021/02/27 20:54 de 77.192.232.26