Como criar ProxyPass condicional?

5

Eu tenho a seguinte configuração para um dos arquivos .conf dos sites disponíveis.
Sua configuração para carregar o blog ghost se você acertar blog.example.com .
De alguma forma isso está causando example.com para servir o blog também. Mas tudo bem também.

<Virtualhost *:80>
  ServerName blog.example.com
  ServerAdmin [email protected]
  ProxyPass        /  http://localhost:2368/
  ProxyPassReverse /  http://localhost:2368/
</Virtualhost>

Então, instalei phpmyadmin e percebi que não posso acessá-lo com http://example.com/phpmyadmin . Ao acessar essa página, a página 404 do fantasma não será encontrada.

Então, eu acho que preciso de um ProxyPass condicional para ignorar /phpmyadmin ?
Eu tentei o seguinte por isso não funciona também.

<Virtualhost *:80>
  ServerName blog.example.com
  ServerAdmin [email protected]
  ProxyPass        /phpmyadmin  http://localhost/phpmyadmin
  ProxyPassReverse /phpmyadmin  http://localhost/phpmyadmin
  ProxyPass        /  http://localhost:2368/
  ProxyPassReverse /  http://localhost:2368/
</Virtualhost>

O Apache acabou de travar e tenho que reiniciá-lo quando eu atingir http://example.com/phpmyadmin .

Atualizar :

Eu tentei o seguinte, e ele carrega a página de login phpmyadmin . Apenas adicionei :80 após localhost. e forneça um nome de domínio específico para o host virtual em vez de * .

<Virtualhost blog.example.com:80>
  ServerName blog.example.com
  ServerAdmin [email protected]
  ProxyPass        /phpmyadmin  http://localhost:80/phpmyadmin
  ProxyPassReverse /phpmyadmin  http://localhost:80/phpmyadmin
  ProxyPass        /  http://localhost:2368/
  ProxyPassReverse /  http://localhost:2368/
</Virtualhost>

O problema agora é redirecionar para http://localhost/phpmyadmin/index.php?token=8fa78a71a166399749b58cd3cb66b7f2 . Provavelmente alguma configuração com phpmyadmin , eu acho.

    
por resting 01.09.2014 / 11:37

1 resposta

6

Você pode usar o ! target para impedir que um local seja intermediado por proxy:

<Virtualhost *:80>
  DocumentRoot     /path/to/parent/of/phpmyadmin
  ProxyPass        /phpmyadmin !
  ProxyPass        /  http://localhost:2368/
  ProxyPassReverse /  http://localhost:2368/
</Virtualhost>

Isso representará todas as solicitações para localhost:2368 , exceto para o phpmyadmin.

Claro que você terá que configurar um documento root, caso contrário o phpmyadmin não será encontrado.

    
por 01.09.2014 / 12:04