Apache mod_auth e mod_proxy não trabalham juntos

1

Estou tentando configurar o apache como um front-end de autenticação para um back-end da Web em execução na porta 8080. O back-end não tem autenticação, portanto, se você curl localhost:8080 obtiver o site. A porta 8080 está bloqueada externamente, então o que eu quero é que o apache autentique um usuário acessando a partir da porta 80 e, em seguida, o proxy para a porta 8080.

Acredito que isso seja possível, de acordo com este post no stackoverflow: link

Eu tentei replicar isso, no entanto, não consigo autenticar o Apache; apenas passa diretamente para o proxy. Aqui está a configuração do host virtual:

<VirtualHost *:80>

  ServerName external.mywebsite.com

  <Location "/">
          Satisfy any
          require valid-user
          order allow,deny
          Allow from all
  </Location>


  ProxyRequests off
  ProxyPreserveHost on

  ProxyPass / http://localhost:8080/
  ProxyPassReverse / http://localhost:8080/

  <Proxy *>
          Order deny,allow
          Allow from all
          AuthType Basic
          AuthName "Private"
          AuthBasicProvider file
          AuthUserFile /path/to/htpasswd
          Require valid-user
  </Proxy>
</VirtualHost>

Isso funciona tanto quanto a navegação para external.mydomain.com saídas do backend. Portanto, o próprio proxy está funcionando, mas é como se as diretivas Auth estivessem sendo ignoradas. Eu também tentei mover as diretivas Auth para o bloco <location> , mas isso tem exatamente o mesmo efeito.

Estou usando o Apache2 v2.2.22 rodando no Ubuntu 12.04. Alguma sugestão?

    
por nightowl 13.12.2012 / 15:09

1 resposta

2

Satisfy any faz exatamente o que diz: permite o acesso com base no controle de acesso à autenticação ou .

Como você permite o primeiro no bloco Proxy e o último no bloco Location, a autenticação nunca é necessária.

    
por 13.12.2012 / 15:35