1 votes

L'utilisation du proxy inverse NGINX pour réécrire le chemin sur l'image Docker OwnCloud ne fonctionne qu'à moitié.

J'essaie donc d'avoir une instance d'OwnCloud fonctionnant via une image docker derrière un reverse proxy https nginx et j'ai besoin de réécrire le chemin via le reverse proxy pour qu'au lieu d'aller à https://my-server/ pour accéder à OwnCloud, vous utilisez https://my-server/cloud pour y accéder.

Mon bloc de localisation actuel par proxy inverse ressemble à ceci :

location  /cloud {
  rewrite /cloud/(.*) /$1  break;
  proxy_pass         http://localhost:8080;
  proxy_redirect     off;
  proxy_set_header   Host $host;
}

Mais cela ne fonctionne qu'à moitié. Lorsque je navigue vers htts://mon-serveur/cloud, j'obtiens une erreur 404 générée par OwnCloud, puis si je clique sur 'take me back to OwnCloud', je suis redirigé vers https://my-server/index.php ce qui entraîne une erreur de niveau 404 de la part de nginx, car la redirection devrait se faire vers https://my-server/cloud/index.php .

Je pense qu'il faut modifier les configurations d'OwnCloud pour qu'il renvoie des liens avec le /cloud en annexe, mais je n'ai aucune idée de la façon de le faire via une image docker. J'apprécie toute aide à ce sujet.

1voto

Leo Points 1833

Je ferais probablement quelque chose comme ça :

location  /cloud/ {
  proxy_pass         http://localhost:8080/;
}

Notez la barre oblique finale / à la fin de emplacement y proxy_pass directives[1]. Le fonctionnement est similaire à celui de rsync, c'est-à-dire que si le slash de fin existe, il remplacera tout ce qui suit. Dans votre cas : http://proxy/cloud demandera à l'organisme en amont http://upstream:8080/ et le sous-répertoire utilisé par OwnCloud, par exemple, sera demandé sous la forme suivante : http://proxy/cloud/example et demandée comme http://upstream:8080/example

Vous ne devriez pas avoir besoin de la réécrire si vous récupérez le répertoire /cloud avant d'effectuer un proxy vers l'amont.

Et supprimez les autres paramètres, car ils ne sont pas nécessaires pour ce que vous voulez, à moins que vous n'utilisiez l'en-tête pour quelque chose, je ne pense pas que la redirection fasse une différence dans votre cas.

[1] Source : https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X