Bonjour,
J'ai développé une application ASP.NET MVC3, disponible sur 2 points d'entrée.
Par un accès direct pour les utilisateurs LAN. (ex: http://192.168.1.1/)
Par une adresse externe pour les utilisateurs WAN. (ex: http://myserver.mycompany.com/myapplication/)
Pour les utilisateurs WAN, mon point d'entrée est un serveur Web Apache, qui me sert de reverse proxy pour atteindre mon serveur IIS.
Ci-dessous ma configuration Apache:
Lorsque j'utilise un <%: Url.Content ("~/css/style.css")%> par exemple, derrière le reverse proxy, l'URL générée est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <VirtualHost *:80> ServerName myserver.mycompany.com ProxyPreserveHost On ProxyRequests Off ProxyPass /myapplication/ <a href="http://192.168.1.1:8087/" target="_blank">http://192.168.1.1:8087/</a> ProxyPassReverse /myapplication/ <a href="http://192.168.1.1:8087/" target="_blank">http://192.168.1.1:8087/</a> </VirtualHost>
http://myserver.mycompany.com/css/style.css
L'URL correcte devrait être:
http://myserver.mycompany.com/myappl.../css/style.css
Même problème avec l'URL générées par Url.Action, Html.BeginForm, etc ..
Comment régler le problème?
J'ai lu la solution du mod_proxy_html, mais celle-ci ne fonctionne que partiellement.
J'ai également remarqué que quand je faisait un <%= Request.RawUrl %>, celui-ci me retournait derrière le reverse proxy "/" et non "/myapplication/". Je crois que l'adresse générée par cette instruction est également celle qui sert pour la génération des liens sur le moteur asp.net.
Il y a-t-il des entetes particulières à envoyer afin que le moteur asp.net comprenne qu'il faut se baser sur le repertoire "/myapplication/" pour racine et non "/" ?
Merci d'avance.
Partager