mirror of
https://github.com/R0m1k3/Presencia.git
synced 2026-10-11 17:27:42 +02:00
Fix: la résolution DNS dynamique du nginx frontend écrasait le chemin de l'API
Avec un proxy_pass entièrement basé sur une variable, nginx ne remplace plus le préfixe de location par le reste de l'URI comme il le fait pour une valeur statique : toutes les requêtes /api/* étaient réécrites en exactement /api/ (sans /auth/login, /users, etc.), d'où les 404 sur toutes les routes. Fix : $request_uri est maintenant explicitement ajouté au proxy_pass pour transmettre le chemin et la query string d'origine. Reproduit et vérifié avec un vrai nginx local + un faux backend qui échoue le chemin reçu : le bug était bien présent avec l'ancienne config, et absent avec la nouvelle.
This commit is contained in:
1 file changed
+8
-2
+8
-2
@@ -11,8 +11,14 @@ server {
|
||||
resolver 127.0.0.11 valid=30s;
|
||||
|
||||
location /api/ {
|
||||
set $backend_upstream http://presencia-backend:4790;
|
||||
proxy_pass $backend_upstream/api/;
|
||||
set $backend_upstream presencia-backend;
|
||||
# $request_uri (the raw, un-normalized original URI) must be appended
|
||||
# explicitly: when the proxy_pass target is built from a variable,
|
||||
# nginx does NOT replace the matched location prefix with the rest of
|
||||
# the request URI like it does for a static proxy_pass value — it
|
||||
# would otherwise always forward the literal "/api/" with nothing
|
||||
# appended, regardless of the actual path requested.
|
||||
proxy_pass http://$backend_upstream:4790$request_uri;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
|
||||
Reference in new issue
Block a user