API : first shot
fonctionnel mais il faut que la commande uwsgi -s qui crée le socket soit active dans le shell.
This commit is contained in:
parent
c6e67290d1
commit
fd46fea548
65
api/README.md
Normal file
65
api/README.md
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
|
||||||
|
# API Ar Redadeg
|
||||||
|
|
||||||
|
|
||||||
|
## À propos
|
||||||
|
|
||||||
|
Cette API sert à…
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Hello.py
|
||||||
|
|
||||||
|
cd api
|
||||||
|
python3 -m venv venv
|
||||||
|
. venv/bin/activate
|
||||||
|
pip install flask uwsgi
|
||||||
|
|
||||||
|
tester
|
||||||
|
python3 hello.py
|
||||||
|
|
||||||
|
Vérifier sur http://localhost:5000/
|
||||||
|
|
||||||
|
ctrl + C pour arrêter
|
||||||
|
|
||||||
|
### Configurer uWSGI
|
||||||
|
|
||||||
|
On utilise les fichiers wsgi.py et hello.ini
|
||||||
|
|
||||||
|
on teste si uWSGI et le socket fonctionne :
|
||||||
|
|
||||||
|
uwsgi -s /tmp/hello.sock --manage-script-name --mount /hello=wsgi:app
|
||||||
|
|
||||||
|
|
||||||
|
### Configurer nginx
|
||||||
|
|
||||||
|
On rajoute les directives suivantes au fichier de conf nginx
|
||||||
|
|
||||||
|
location = /hello { rewrite ^ /hello/; }
|
||||||
|
location /hello { try_files $uri @hello; }
|
||||||
|
location @hello {
|
||||||
|
include uwsgi_params;
|
||||||
|
uwsgi_pass unix:/tmp/hello.sock;
|
||||||
|
}
|
||||||
|
|
||||||
|
Recharger la configuration nginx.
|
||||||
|
|
||||||
|
Tester http://ar-redadeg.openstreetmap.bzh/hello/
|
||||||
|
|
||||||
|
Super ! Mais il faut que la commande uwsgi -s qui crée le socket soit active dans le shell.
|
||||||
|
|
||||||
|
|
||||||
|
### sortir
|
||||||
|
|
||||||
|
deactivate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Sources
|
||||||
|
|
||||||
|
https://flask.palletsprojects.com/en/1.1.x/deploying/uwsgi/
|
||||||
|
|
||||||
|
https://www.vultr.com/docs/deploy-a-flask-website-on-nginx-with-uwsgi
|
||||||
|
|
||||||
|
https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04
|
11
api/hello.ini
Normal file
11
api/hello.ini
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[uwsgi]
|
||||||
|
module = wsgi:app
|
||||||
|
|
||||||
|
master = true
|
||||||
|
processes = 5
|
||||||
|
|
||||||
|
socket = hello.sock
|
||||||
|
chmod-socket = 660
|
||||||
|
vacuum = true
|
||||||
|
|
||||||
|
die-on-term = true
|
16
api/hello.py
Normal file
16
api/hello.py
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#!usr/local/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from flask import Flask
|
||||||
|
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/")
|
||||||
|
def hello():
|
||||||
|
return "<h1 style='color:blue'>Hello There!</h1>"
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app.debug = True
|
||||||
|
app.run(host='0.0.0.0')
|
8
api/wsgi.py
Normal file
8
api/wsgi.py
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#!usr/local/bin/python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
|
from hello import app
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app.run()
|
|
@ -37,4 +37,11 @@ server {
|
||||||
alias /data/projets/mviewer/;
|
alias /data/projets/mviewer/;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
location = /hello { rewrite ^ /hello/; }
|
||||||
|
location /hello { try_files $uri @hello; }
|
||||||
|
location @hello {
|
||||||
|
include uwsgi_params;
|
||||||
|
uwsgi_pass unix:/tmp/hello.sock;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue