J'essaie de servir toutes les requêtes avec le backend (uwsgi pour flask dans ce cas) et si le backend n'a pas un tel chemin, nginx devrait renvoyer 404.
D'une manière ou d'une autre, je n'arrive à faire en sorte que le backend prenne le relais que lorsque j'utilise
try_files $uri @uwsgi;
Mais de cette façon, vous pouvez accéder à tous les fichiers du répertoire racine. Je ne veux pas servir tous les fichiers du répertoire racine.
J'ai également essayé ceci :
try_files @uwsgi =404;
Mais j'obtiens alors un 404 même si le chemin est défini dans mon application flask.
Plus de contexte : Ubuntu 14.04, nginx 1.4.6
location @uwsgi {
include uwsgi_params;
uwsgi_pass unix:$document_root/myapp.sock;
}
location / {
try_files $uri @uwsgi;
}
location /static/ {
try_files $uri =404;
}
L'application flask fonctionne ainsi :
@app.route('/test')
def hello_world():
return 'Hello World!'
Ainsi, lorsque je visite example.com/test, je veux que le backend flask s'en charge. Mais je ne veux pas que nginx serve tous les fichiers dans le répertoire racine.