Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| python:gunicorn [2019/04/29 22:14] – add installation phsw | python:gunicorn [2023/02/17 14:39] (Version actuelle) – [Générer des URLs absolue avec HTTPS] fix typo phsw | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| * [[https:// | * [[https:// | ||
| - | -------- | + | |
| ==== Installation ==== | ==== Installation ==== | ||
| Installer '' | Installer '' | ||
| - | -------------- | + | |
| ==== Script de lancement ==== | ==== Script de lancement ==== | ||
| Ligne 35: | Ligne 35: | ||
| Dans le cas de Django, on remplace '' | Dans le cas de Django, on remplace '' | ||
| + | Si Nginx sera devant Gunicorn, on écoute seulement sur localhost, et sur un port supérieur à 1024 pour ne pas avoir besoin d' | ||
| - | + | Il est possible de définir des variables d’environnement pour Gunicorn, par exemple : | |
| - | -------------- | + | <code bash> |
| + | gunicorn | ||
| + | </ | ||
| ==== Création d'un service ==== | ==== Création d'un service ==== | ||
| Ligne 54: | Ligne 57: | ||
| WantedBy=multi-user.target | WantedBy=multi-user.target | ||
| </ | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Application Django dans un sous-dossier avec Nginx ==== | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | On souhaite que l' | ||
| + | |||
| + | Dans la configuration Nginx, dans le bloc '' | ||
| + | <code nginx> | ||
| + | | ||
| + | alias / | ||
| + | } | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Les fichiers statiques, contenus dans le dossier ''/ | ||
| + | |||
| + | Dans '' | ||
| + | <code python> | ||
| + | FORCE_SCRIPT_NAME = "/ | ||
| + | </ | ||
| + | Dans ce même fichier, préciser également les paramètres relatifs aux fichiers statiques: | ||
| + | <code python> | ||
| + | STATIC_URL = '/ | ||
| + | STATIC_ROOT = "/ | ||
| + | </ | ||
| + | <WRAP round info> | ||
| + | Les fichiers statiques se copient dans ce dossier avec la commande suivante: | ||
| + | <code bash> | ||
| + | python manage.py collectstatic | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Il peut aussi être nécessaire de faire la même chose pour les fichiers '' | ||
| + | <code python> | ||
| + | MEDIA_URL = '/ | ||
| + | </ | ||
| + | <WRAP round important> | ||
| + | '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Générer des URLs absolues avec HTTPS ==== | ||
| + | |||
| + | Si l' | ||
| + | < | ||
| + | {{ request.scheme }}://{{ request.get_host }}{% url ' | ||
| + | </ | ||
| + | Pour que le protocole soit bien HTTPS, il faut que dans la configuration Nginx il y ait : | ||
| + | < | ||
| + | proxy_set_header X-Forwarded-Proto $scheme; | ||
| + | </ | ||
| + | et dans les paramètres de Django : | ||
| + | <code python> | ||
| + | SECURE_PROXY_SSL_HEADER = (" | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||