...
Au niveau d'nginx, voici ce qu'on a fait :
Indiquer à nginx de servir des
...
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 | ||
|---|---|---|
| ||
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 | ||||
|---|---|---|---|---|
| ||||
#!/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 | ||
|---|---|---|
| ||
# 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