informatique:reseau:apache:reverseproxy

Apache / Reverse Proxy

        <Location /api/>
                ProxyPass http://api.example.net/
                ProxyPassReverse http://api.example.net/
        </Location>

La variable REMOTE_USER n'est pas défini par Apache dans l'environnement se qui complique un peu la chose. L'astuce est d'utiliser mod_rewrite qui y a accès pour définir une variable d'environnement RU que l'on utilise ensuite pour l'ajouter l'header :

        <Location /api/>
                ProxyPass http://api.example.net/
                ProxyPassReverse http://api.example.net/
                require valid-user

                ## Add X-Forwarded-User header

                # REMOTE_USER not accessible in env, use mod_rewrite to define RU env var
                RewriteEngine On
                RewriteCond %{REMOTE_USER} (.+)
                RewriteRule ^.*$ - [E=RU:%1]

                # Add X-Forwarded-User header from RU env var
                RequestHeader add X-Forwarded-User %{RU}e
        </Location>
  • informatique/reseau/apache/reverseproxy.txt
  • Dernière modification : 2015/04/21 09:28
  • de bn8