If the proxy_pass directive is specified with a URI, then when a request is passed to the server, the part of a normalized request URI matching the location is replaced by a URI specified in the directive:
location /name/ {
proxy_pass http://127.0.0.1/remote/;
}
If proxy_pass is specified without a URI, the request URI is passed to the server in the same form as sent by a client when the original request is processed, or the full normalized request URI is passed when processing the changed URI:
location /some/path/ {
proxy_pass http://127.0.0.1;
}
Dans le premier cas, romu.fr/toto est passé à ton wallabag: localhost:4000/toto, ce qui fonctionne (si /toto est reconnu par wallabag, évidemment)
Dans le second cas, romu.fr/wallabag/toto est passé ainsi: localhost:4000/wallabag/toto.
Deux solutions :
soit wallabag a une option pour reconnaître qu’il est à l’intérieur d’un namespace (/wallabag), et tu dois le configurer
soit tu dis à nginx de transformer romu.fr/wallabag/toto en localhost:4000/toto. Ajouter juste un / à la fin de l’adresse du reverse proxy dans proxy_pass devrait suffire. Problème : si wallabag utilise des URL absolues (type <a href="/tata">), alors tous les liens vont péter, puisqu’au premier lien tu seras redirigé vers romu.fr/tata, qui ne sera pas reconnu comme faisant partie du namespace wallabag. Pour cette raison, faire du reverse proxying dans un namespace est considéré comme une mauvaise idée.
À ta place je m’emmerderai pas et je prendrai un certificat letsencrypt pour wallabag.romu.fr.
# Normal
Posté par Moonz . En réponse au message "Reverse proxy" avec nginx. Évalué à 4.
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
Dans le premier cas,
romu.fr/totoest passé à ton wallabag:localhost:4000/toto, ce qui fonctionne (si/totoest reconnu par wallabag, évidemment)Dans le second cas,
romu.fr/wallabag/totoest passé ainsi:localhost:4000/wallabag/toto.Deux solutions :
/wallabag), et tu dois le configurernginxde transformerromu.fr/wallabag/totoenlocalhost:4000/toto. Ajouter juste un/à la fin de l’adresse du reverse proxy dansproxy_passdevrait suffire. Problème : si wallabag utilise des URL absolues (type<a href="/tata">), alors tous les liens vont péter, puisqu’au premier lien tu seras redirigé versromu.fr/tata, qui ne sera pas reconnu comme faisant partie du namespace wallabag. Pour cette raison, faire du reverse proxying dans un namespace est considéré comme une mauvaise idée.À ta place je m’emmerderai pas et je prendrai un certificat letsencrypt pour
wallabag.romu.fr.