esup-pod

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Au niveau d'nginx, voici ce qu'on a fait :

  1. Indiquer à nginx de servir des

...

  1. versions compressées des fichiers statics

Avec ca, lorsque nginx trouve un fichier "file.css.gz" dans le dossier static, il l'envoie à la place de la version standard (le navigateur fera la décompression)

Bloc de code
titlepod_nginx.conf
location /static {

	gzip_static  on;

	gzip_types text/plain application/xml text/css text/javascript application/javascript image/svg+xml;

	[...]
}

Pour que ca marche bien, il faut bien sûr avoir des fichier ".gz", on lance donc manuellement un script shell :

Bloc de code
languagebash
titlecompress_static.sh
#!/bin/bash
# Generate compressed versions of all statics files to be served by nginx

cd podv2/pod/static/
for file in $(find . -type f)
do
    if [[ $file =~ .*\.(css|js|svg)$ ]]
    then
        gzip -fk "$file"
    fi
done

==> cette étape pourrait être inutile à partir du moment ou on installe https://github.com/whs/django-static-compress

2. Activer la compression à la volée par nginx des contenus textuels non statics

pour optimiser la bande passante, on peux aussi améliorer les perfs en demandant à nginx de compresser à la volée les contenus textuels. voici ce qu"on a ajouté à pod_nginx.conf :

Bloc de code
titlepod_nginx.conf
    # Django media
    location /media {
        gzip on;
        gzip_types text/vtt;
        [...]
    }

    [...]

    # Finally, send all non-media requests to the Django server.
    location / {
        gzip on;
        uwsgi_pass  django;
    	[...]
    }

nb : pour que les fichiers vtt soient reconnus comme texte, on les a ajoutés comme "text/vtt" dans /etc/ningx/mime.types