2 votes

Transfert de l'en-tête https par le reverse proxy d'Apache

J'ai installé avec succès le proxy inverse sur Apache. Cela fonctionne comme un charme. Je l'utilise pour transférer les requêtes https vers http. Mon problème est que j'ai besoin de transmettre la variable SERVER_HTTPS à mon serveur final, pour indiquer si la personne utilise une connexion ssl ou simplement http. J'ai trouvé un moyen de le faire : Je peux transmettre la variable HTTP_X_FORWARDED_PROTO et vérifier sur le serveur final :

   if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
   $_SERVER['HTTPS']='on'; 

Mais cette variante ne me convient pas, car je ne peux pas éditer les serveurs finaux scripts. Disons que je n'y ai même pas accès. Mais je sais comment vérifier s'il est transféré. Donc, en général, ma question est la suivante : Y a-t-il un moyen pour moi de faire suivre cette variable ? J'ai vu une autre variante, avec le moteur Rewrite, mais cela n'a pas fonctionné pour moi et il n'y a pas d'informations détaillées. Peut-être que si je configure mon serveur sur Nginx + apache, cela enverra cette variable d'en-tête ?

2voto

Jenny D Points 26978

Le problème est que les variables décrivent l'environnement du serveur qui reçoit la demande. Lorsque la connexion est établie avec le serveur HTTP dorsal, celui-ci définit ses propres variables pour décrire son propre environnement. Vous ne pouvez pas forcer un serveur à modifier sa propre description du monde dans lequel il vit ; le mieux que vous puissiez faire est de transmettre un en-tête que le serveur peut choisir d'utiliser pour modifier son propre environnement.

Je ne sais pas si vous avez accès à la configuration du serveur dorsal. Si c'est le cas, vous pouvez peut-être utiliser la fonction SetEnv o SetEnvIf directive à cet endroit. Il y a de la documentation à la page mod_env sur apache.org .

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