Nous sommes confrontés au problème suivant et essayons de comprendre quelle est la meilleure façon de le gérer. L'objectif général est le suivant :
--> example.com/app1 --> app1.com/
--> example.com/app1/images --> app1.com/images
--> example.com/app2 --> app2.com/
--> example.com/app2/images --> app2.com/images
--> example.com/app3 --> app3.com/
--> example.com/app3/images --> app3.com/images
Nous avons envisagé les solutions suivantes, certaines fonctionnent et d'autres non. Nous essayons de comprendre quelle est la meilleure façon de procéder car nous ne sommes en aucun cas des experts. Jusqu'à présent, l'outil que nous utilisons est Nginx pour effectuer le proxy inverse, mais l'outil n'a pas vraiment d'importance, nous sommes ouverts à tout.
Solution 1
Nginx réécrit le texte du corps pour ajouter "app1" pour les requêtes d'app1, etc. Comme dans l'exemple ci-dessus, il y a une demande pour app1 et un index.html revient. Cet index.html contient ensuite une balise qui ressemble à ![](images/hello.png)
. Cela ne fonctionnera évidemment pas, donc nous réécrivons le corps (c'est-à-dire l'index.html) pour dire ![](app1/images/hello.png)
.
Problème avec la Solution 1
Nous devons être très vigilants sur la manière dont nous rédigeons les règles de réécriture du corps, sinon nous pourrions réécrire quelque chose que nous n'avions pas l'intention de faire et ainsi casser un peu de JS ou de HTML. Cette solution ne fonctionne également pas pour une partie du code JS (nous utilisons Angular) qui n'écrit pas implicitement l'emplacement des vues et qui est plutôt assemblé par le framework lui-même.
Solution 2
Déplacez chaque application de la racine vers son propre dossier. Cela signifie que toute demande d'image ou autre sera mise à jour en ![](app1/images/hello.png)
.
Problème avec la Solution 2
Nous devons changer les 3 sites web existants pour demander des ressources à partir de leurs nouvelles racines respectives.
Toute aide serait grandement appréciée, merci d'avance.
0 votes
Idéalement, évitez de réécrire le document dans le proxy -- si vous pouvez rediriger exemple.com/app1 --> exemple.com/app1/ avant d'appliquer le proxy inversé, vos urls relatives fonctionneraient.