web-dev-qa-db-fra.com

Comment utiliser la redirection d'URL avec un proxy inverse?

Mon exigence est de rediriger l'URL, qui s'exécute sur le port 80 avec le proxy inverse. Je suppose que je devrais utiliser la redirection d'URL, proxy inversé ensemble.

Il existe déjà un domaine Web actif tel que: https://abcd.cdsw.intranet.example.com Cependant, nous souhaiterions utiliser un proxy inverse pour masquer les détournements de l'URL, mais je suppose que cette URL fonctionne avec le port 80.

En conséquence, je ne pouvais pas démarrer le serveur httpd dans Redhat Enterprise Linux 7 pour introduire le proxy inverse. Quelqu'un peut il m'aider avec ça?

Attendu:

URL actuelle: https://abcd.cdsw.intranet.example.com/login

URL attendue: http ou https://example.com/cdsw

1
Vijay

Sous Apache, l'utilisation de la directive ProxyPassReverse fera ce que vous voulez. La redirection à partir du serveur principal sera remplacée par le nom d'hôte principal par le nom principal. De la documentation:

Cette directive permet à Apache httpd d'ajuster l'URL dans les en-têtes Location, Content-Location et URI sur les réponses de redirection HTTP. Ceci est essentiel lorsque Apache httpd est utilisé en tant que proxy inverse (ou passerelle) pour éviter de contourner le proxy inverse en raison des redirections HTTP sur les serveurs principaux qui restent derrière le proxy inverse.

Ils ont également un exemple de la façon dont il est généralement utilisé en association avec le réglage des chemins de cookie:

ProxyPass         "/mirror/foo/" "http://backend.example.com/"
ProxyPassReverse  "/mirror/foo/" "http://backend.example.com/"
ProxyPassReverseCookieDomain  "backend.example.com"  "public.example.com"
ProxyPassReverseCookiePath  "/"  "/mirror/foo/"

Vous constaterez peut-être qu'il existe également des liens absolus dans les documents HTML à partir du serveur principal. Si tel est le cas, vous pouvez utiliser le module mod_proxy_html pour les remplacer également.


Cela ressemble à cela. Dans ce cas, vous n'avez pas développé l'application Web backend vous-même et il se peut que les paramètres ne soient pas configurés pour une exécution derrière un serveur proxy. Toutefois, si vous pouvez modifier le code sur l'application Web backend, vous pouvez le modifier pour écrire ses liens et ses redirections à l'aide du nom d'hôte frontal.

Le serveur proxy frontal transmet le nom d'hôte au serveur en utilisant l'en-tête X-Forwarded-For. Vous pouvez changer votre serveur pour qu'il utilise la valeur de cet en-tête plutôt que ServerName afin qu'il fonctionne de manière transparente derrière un proxy.

2