.. | ||
api_redadeg.ini | ||
api_redadeg.py | ||
api_redadeg.service | ||
README.md | ||
wsgi.py |
API Ar Redadeg
À propos
Cette API sert à :
- lancer les scripts de traitements des données
- accéder à des informations sur les les traitements
API Flask copiée depuis https://github.com/MaelREBOUX/simple_flask_api
Installation
Installer les paquets requis
sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev libpcre3 libpcre3-dev python3-setuptools
Créer un environnement virtuel Python
cd api
python3 -m venv venv
. venv/bin/activate
pip install flask uwsgi
Tester
python3 hello.py
Vérifier que l'on obtient bien quelque chose en allant sur la page http://localhost:5000/
Faire ctrl + C
pour arrêter.
Tester uWSGI
On teste maintenant si uWSGI et le socket fonctionnent bien en utilisant le fichier de configuration api_redadeg.ini
:
uwsgi --ini api_redadeg.ini
aire ll /tmp/api_redadeg*
pour voir si le socket a bien été créé par www-data.
Tester si on obtient bien toujours quelque chose sur la page https://ar-redadeg.openstreetmap.bzh/api/
À ce stade tout est fonctionnel mais il faut maintenant créer un daemon pour ne pas avoir une commande uwsgi dans le shell.
Sortir du mode venv en tapant : deactivate
.
Configurer nginx
On rajoute les directives suivantes au fichier de conf nginx
location = /api { rewrite ^ /api/; }
location /api { try_files $uri @api; }
location @api {
include uwsgi_params;
uwsgi_pass unix:/tmp/api_redadeg.sock;
}
On recharger la configuration de nginx : sudo service nginx reload
.
Tester si on obtient bien toujours quelque chose sur la page https://ar-redadeg.openstreetmap.bzh/api/
À ce stade tout est fonctionnel mais il faut maintenant créer un daemon pour ne pas avoir une commande uwsgi dans le shell.
Sortir du mode venv en tapant : deactivate
.
Configurer un socket spécifique permanent sur la machine
cp api_redadeg.service /etc/systemd/system/
On n'oublie pas de mettre les permissions au serveur web sur les fichiers :
chown -R www-data:www-data /data/projets/ar_redadeg/api/
Et on crée le répertoire pour les logs (en option) :
mkdir -p /var/log/uwsgi/
Lancer et tester le service :
# enable
sudo systemctl enable api_hello
# start
sudo systemctl start api_hello
# check
sudo systemctl status api_hello
Faire ll /tmp/api_redadeg*
pour voir si le socket a bien été créé par www-data.
Tester si on obtient bien toujours un "Hello There" sur la page http://localhost/hello/
Si on veut supprimer le service :
systemctl stop api_redadeg
systemctl disable api_redadeg
rm /etc/systemd/system/api_redadeg.service
systemctl daemon-reload
systemctl reset-failed