Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| sysadmin:docker:nginx [2021/02/13 12:29] – 77.192.232.26 | sysadmin: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' | Il est possible d' | ||
| Ligne 37: | Ligne 37: | ||
| </ | </ | ||
| - | Une fois le fichier de configuration | + | On peut faire également faire le choix d' |
| + | <code bash> | ||
| + | docker exec --tty --interactive container_name /bin/sh | ||
| + | </ | ||
| + | |||
| + | Une fois dans le conteneur, on modifie le fichier **/ | ||
| + | |||
| + | Pour charger la nouvelle configuration: | ||
| + | |||
| + | <code bash> | ||
| + | # demander au processus en cours d’exécution de recharger la conf modifiée | ||
| + | nginx -s reload | ||
| + | </ | ||
| + | |||
| + | Une fois le fichier de configuration souhaité obtenu, on pourra l' | ||
| + | |||
| + | <code bash> | ||
| + | # copier le fichier du conteneur dans le répertoire courant | ||
| + | docker cp container_name:/ | ||
| + | </ | ||
| + | |||
| + | Le Dockerfile ci-dessous utilisera la nouvelle configuration valide: | ||
| < | < | ||
| - | FROM nginx | + | FROM nginx: |
| COPY default.conf / | COPY default.conf / | ||
| ... | ... | ||
| Ligne 129: | Ligne 150: | ||
| Modifier le fichier /etc/hosts ou la configuration du DNS pour résoudre correctement www.example.com. | Modifier le fichier /etc/hosts ou la configuration du DNS pour résoudre correctement www.example.com. | ||
| Le site en https est accessible à l'URL https:// | Le site en https est accessible à l'URL https:// | ||
| + | |||
| + | ===== Execution de scripts shell ===== | ||
| + | |||
| + | **fcgiwrap** permet d’exécuter des scripts shell. Utiliser le gestionnaire de paquetage propre à la distribution pour l' | ||
| + | |||
| + | <code bash> | ||
| + | apk add fcgiwrap spawn-fcgi | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | spawn-fcgi -u fcgiwrap -g www-data -S -s / | ||
| + | </ | ||
| + | |||
| + | ==== Troubleshooting ==== | ||
| + | |||
| + | Lors de l’exécution d'un script CGI une page d' | ||
| + | |||
| + | < | ||
| + | 2021/02/27 17:19:22 [error] 21#21: *1 upstream prematurely closed FastCGI stdout while reading response header from upstream, client: 172.21.0.2, server: red.labinfo.mairie.local, | ||
| + | </ | ||
| + | |||
| + | Cette erreur s'est produite lorsque: | ||
| + | - 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; | ||
| + | |||
| + | < | ||
| + | |||
| + | server { | ||
| + | # ... | ||
| + | | ||
| + | location /info { | ||
| + | gzip off; | ||
| + | root / | ||
| + | access_log on; # pour ne pas logger les accès | ||
| + | autoindex off; # empeche l' | ||
| + | # include fastcgi_params; | ||
| + | fastcgi_param SCRIPT_FILENAME / | ||
| + | fastcgi_pass unix:/ | ||
| + | } | ||
| + | |||
| + | # ... | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | |||
| + | Le script shell doit commencer par retourner le header minimal | ||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | echo " | ||
| + | echo "" | ||
| + | echo "" | ||
| + | |||
| + | ... | ||
| + | </ | ||
| ===== Références ===== | ===== Références ===== | ||
| Ligne 134: | Ligne 209: | ||
| * https:// | * https:// | ||
| * http:// | * http:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * http:// | ||
| + | * https:// | ||
| + | |||