nginx, autenticação http do apache

1

Eu tenho um servidor proxy reverso nginx que é alimentado em um cache de verniz com um back-end do apache.

O php está sendo executado como um processo fastcgi iniciado a partir do apache.

Eu estava tentando fazer com que algum software php funcionasse, no entanto, a caixa de diálogo Autenticação HTTP básica não estava aceitando nomes de usuário ou senhas. Eu fiz algumas pesquisas e inventei isso para colocar em um arquivo .htaccess:

RewriteEngine On
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]

Isso corrigiu o problema de autenticação com a autenticação HTTP básica.

Agora eu tenho tentado descobrir o que exatamente isso fez, então minha pergunta é: por que adicionar essa regra de reescrita fez a autenticação começar a funcionar?

Tudo o que eu poderia fazer no momento é que em algum lugar ao longo da cadeia de nginx - > verniz - > apache, o apache não estava recebendo os cabeçalhos de autenticação. Eu gostaria de entender o que está acontecendo aqui para que eu possa implementar uma mudança no nível do servidor que impedirá que isso ocorra em outro lugar.

Alguém pode, por favor, esclarecer?

Obrigado

    
por Antix 09.03.2013 / 15:33

1 resposta

2

A perda da autenticação HTTP parece não ser um problema de nginx ou Varnish .

Esta regra de reescrita não é para tornar os campos de cabeçalho autenticação acessíveis para Apache mas para o backend Fast-CGI (assumindo que a autenticação deve ser reconhecida dentro de PHP ).

Os cabeçalhos

Authentication são geralmente ocultados do Fast-CGI. Você pode

  • use este RewriteRule hack para definir a variável de ambiente REMOTE_USER manualmente;

  • ou a variável mod_fastcgi configuração para passar cabeçalhos para Fast-CGI :

FastCgiServer:
[...]

-pass-header header (none)

The name of an HTTP Request Header to be passed in the request environment. This option makes available the contents of headers which are normally not available (e.g. Authorization) to a CGI environment

     

[...]

    
por 11.03.2013 / 21:08