mirror of
				https://github.com/ae-utbm/sith.git
				synced 2025-10-31 09:03:06 +00:00 
			
		
		
		
	add doc for nginx configuration
This commit is contained in:
		| @@ -9,6 +9,33 @@ que votre environnement de développement soit encore plus | ||||
| proche de celui en production. | ||||
| Voici les étapes à suivre pour ça. | ||||
|  | ||||
| !!!tip | ||||
|  | ||||
|     Configurer les dépendances du projet | ||||
|     peut demander beaucoup d'allers et retours entre | ||||
|     votre répertoire projet et divers autres emplacements. | ||||
|  | ||||
|     Vous pouvez gagner du temps en déclarant un alias : | ||||
|  | ||||
|     === "bash/zsh" | ||||
|  | ||||
|         ```bash | ||||
|         alias cdp="cd /repertoire/du/projet" | ||||
|         ``` | ||||
|  | ||||
|     === "nu" | ||||
|  | ||||
|         ```nu | ||||
|         alias cdp = cd /repertoire/du/projet | ||||
|         ``` | ||||
|  | ||||
|     Chaque fois qu'on vous demandera de retourner au répertoire | ||||
|     projet, vous aurez juste à faire : | ||||
|  | ||||
|     ```bash | ||||
|     cdp | ||||
|     ``` | ||||
|  | ||||
| ## Installer les dépendances manquantes | ||||
|  | ||||
| Pour installer complètement le projet, il va falloir | ||||
| @@ -20,19 +47,19 @@ Commencez par installer les dépendances système : | ||||
|     === "Debian/Ubuntu" | ||||
|  | ||||
|         ```bash | ||||
|         sudo apt install postgresql redis libq-dev | ||||
|         sudo apt install postgresql redis libq-dev nginx | ||||
|         ``` | ||||
|  | ||||
|     === "Arch Linux" | ||||
|      | ||||
|         ```bash | ||||
|         sudo pacman -S postgresql redis | ||||
|         sudo pacman -S postgresql redis nginx | ||||
|         ``` | ||||
|  | ||||
| === "macOS" | ||||
|  | ||||
|     ```bash | ||||
|     brew install postgresql redis nginx lipbq | ||||
|     brew install postgresql redis lipbq nginx | ||||
|     export PATH="/usr/local/opt/libpq/bin:$PATH" | ||||
|     source ~/.zshrc | ||||
|     ``` | ||||
| @@ -139,6 +166,102 @@ poetry run ./manage.py populate | ||||
|     N'oubliez de quitter la session de l'utilisateur | ||||
|     postgres après avoir configuré la db. | ||||
|  | ||||
| ## Configurer nginx | ||||
|  | ||||
| Nginx est utilisé comme reverse-proxy. | ||||
|  | ||||
| !!!warning | ||||
|  | ||||
|     Nginx ne sert pas les fichiers de la même manière que Django. | ||||
|     Les fichiers statiques servis seront ceux du dossier `/static`, | ||||
|     tels que générés par les commandes `collectstatic` et | ||||
|     `compilestatic`. | ||||
|     Si vous changez du css ou du js sans faire tourner | ||||
|     ces commandes, ces changements ne seront pas reflétés. | ||||
|  | ||||
|     De manière générale, utiliser nginx en dev n'est pas très utile, | ||||
|     voire est gênant si vous travaillez sur le front. | ||||
|     Ne vous embêtez pas avec ça, sauf par curiosité intellectuelle, | ||||
|     ou bien si vous voulez tester spécifiquement  | ||||
|     des interactions avec le reverse proxy. | ||||
|  | ||||
|  | ||||
| Placez-vous dans le répertoire `/etc/nginx`,  | ||||
| et créez les dossiers et fichiers nécessaires : | ||||
|  | ||||
| ```bash | ||||
| cd /etc/nginx/ | ||||
| sudo mkdir sites-enabled sites-available | ||||
| sudo touch sites-available/sith.conf | ||||
| sudo ln -s /etc/nginx/sites-available/sith.conf sites-enabled/sith.conf | ||||
| ``` | ||||
|  | ||||
| Puis ouvrez le fichier `sites-available/sith.conf` et mettez-y le contenu suivant : | ||||
|  | ||||
| ```nginx | ||||
| server { | ||||
|     listen 8000; | ||||
|  | ||||
|     server_name _; | ||||
|  | ||||
|     location /static/; | ||||
|         root /repertoire/du/projet; | ||||
|     } | ||||
|     location ~ ^/data/(products|com|club_logos)/ { | ||||
|         root /repertoire/du/projet; | ||||
|     } | ||||
|     location ~ ^/data/(SAS|profiles|users|.compressed|.thumbnails)/ { | ||||
|         # https://nginx.org/en/docs/http/ngx_http_core_module.html#internal | ||||
|         internal; | ||||
|         root /repertoire/du/projet; | ||||
|     } | ||||
|  | ||||
|     location / { | ||||
|         proxy_pass http://127.0.0.1:8001; | ||||
|         include uwsgi_params; | ||||
|     } | ||||
| } | ||||
| ``` | ||||
|  | ||||
| Ouvrez le fichier `nginx.conf`, et ajoutez la configuration suivante : | ||||
|  | ||||
| ```nginx | ||||
| http { | ||||
|     # Toute la configuration | ||||
|     # éventuellement déjà là | ||||
|  | ||||
|     include /etc/nginx/sites-enabled/sith.conf; | ||||
| } | ||||
| ``` | ||||
|  | ||||
| Vérifiez que votre configuration est bonne : | ||||
|  | ||||
| ```bash | ||||
| sudo nginx -t | ||||
| ``` | ||||
|  | ||||
| Si votre configuration n'est pas bonne, corrigez-la. | ||||
| Puis lancez ou relancez nginx : | ||||
|  | ||||
| ```bash | ||||
| sudo systemctl restart nginx | ||||
| ``` | ||||
|  | ||||
| Dans votre `settings_custom.py`, remplacez `DEBUG=True` par `DEBUG=False`. | ||||
|  | ||||
| Enfin, démarrez le serveur Django : | ||||
|  | ||||
| ```bash | ||||
| cd /repertoire/du/projet | ||||
| poetry run ./manage.py runserver 8001 | ||||
| ``` | ||||
|  | ||||
| Et c'est bon, votre reverse-proxy est prêt à tourner devant votre serveur. | ||||
| Nginx écoutera sur le port 8000. | ||||
| Toutes les requêtes vers des fichiers statiques et les medias publiques | ||||
| seront seront servies directement par nginx. | ||||
| Toutes les autres requêtes seront transmises au serveur django. | ||||
|  | ||||
|  | ||||
| ## Mettre à jour la base de données antispam | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user