O proxy reverso do Apache encaminha o cabeçalho https

1

Eu instalei o proxy reverso com sucesso no Apache. Ele funciona como um encanto. Eu estou usando para proxy solicitação https para http. Meu problema é que eu preciso encaminhar variável SERVER_HTTPS para o meu servidor final, para indicar se a pessoa está usando conexão SSL ou apenas http. Eu encontrei uma maneira de fazer:   Eu posso encaminhar a variável HTTP_X_FORWARDED_PROTO e verificar no servidor final:

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

Mas essa variante não é boa para mim, porque não posso editar os scripts dos servidores finais. Vamos dizer que eu nem tenho acesso a ele. Mas sei como verificar se é encaminhado. Então, geralmente a minha pergunta é: existe alguma maneira de transmitir essa variável? Eu vi mais uma variante, com o mecanismo Rewrite, mas não funcionou para mim e não há informações detalhadas. Talvez Se eu definir meu servidor no Nginx + apache, isso enviará essa variável de cabeçalho?

    
por volf 20.02.2013 / 10:50

1 resposta

1

O problema é que as variáveis descrevem o ambiente do servidor que recebe o pedido. Quando a conexão é feita ao servidor HTTP de back-end, ela define suas próprias variáveis para descrever seu próprio ambiente. Você não pode forçar um servidor a mudar sua própria descrição do mundo em que vive; O melhor que você pode fazer é encaminhar um cabeçalho que o servidor possa usar para alterar seu próprio ambiente.

Não estou claro se você tem acesso à configuração do servidor de back-end. Se fizer isso, você poderá usar a diretiva SetEnv ou SetEnvIf aqui. Há alguma documentação na página mod_env no apache.org .

    
por 20.02.2013 / 11:33