Regra de reconfiguração antes de Proxypass

4

Tendo um aplicativo em execução na porta 10001, gostaria de ter um proxy reverso para veiculá-lo em hostname/ds . O único problema é que há scripts vinculados a /scripts/...

Isso significa que hostname/ds/ me levará para localhost:10001/ e hostname/scripts primeiro deverá reescrever o URL da solicitação para hostname/ds/scripts/* .

Minha configuração:

<VirtualHost *:80>
RewriteEngine on
RewriteRule /^scripts/(.*)$ /ds/scripts/$1 [L,PT]   

ProxyPass /ds/ http://127.0.0.1:10001/
ProxyPassReverse /ds/ http://127.0.0.1:10001/

</VirtualHost>

Ele não funciona: hostname/scripts/ obtém um 404, enquanto hostname/ds/scripts/ obtém a resposta correta pelo aplicativo.

De acordo com o link PT deve funcionar. O que estou fazendo errado?

    
por ProfHase85 01.07.2014 / 11:09

3 respostas

4

você tem um erro de digitação no seu padrão, tente ^/ em vez de /^ (este último nunca será igual)

    
por 01.07.2014 / 12:20
4

Você também pode fazer isso simplesmente adicionando um segundo ProxyPass para combinar / scripts, assim:

<VirtualHost *:80>
    ProxyPass /scripts/ http://127.0.0.1:10001/
    ProxyPassReverse /scripts/ http://127.0.0.1:10001/

    ProxyPass /ds/ http://127.0.0.1:10001/
    ProxyPassReverse /ds/ http://127.0.0.1:10001/
</VirtualHost>
    
por 01.07.2014 / 12:27
3

Eu sei que esse segmento já está resolvido, mas parece que você está tentando usar o ProxyPass para acessar a interface da Web de um Synology DiskStation. Para qualquer um que enfrentou o mesmo problema, com a versão mais recente (DSM 5.1-5004 Update 2) eu tive que usar a seguinte configuração com o seguinte RewriteRules:

<VirtualHost *:80>
    RewriteRule ^/scripts/(.*)$ /ds/scripts/$1 [L,PT]
    RewriteRule ^/webfm/(.*)$ /ds/webfm/$1 [L,PT]
    RewriteRule ^/webapi/(.*)$ /ds/webapi/$1 [L,PT]
    RewriteRule ^/webman/(.*)$ /ds/webman/$1 [L,PT]

    ProxyPreserveHost On
    ProxyRequests Off
    ProxyVia Off
    ProxyPass /ds/ http://192.168.1.10:5001/
    ProxyPassReverse /ds/ http://127.0.0.1:5001/
</VirtualHost>

Isso obviamente está sujeito a alterações com versões mais recentes do DS. Eu achei o uso do FireBug muito útil ao procurar pelas pastas que o DS solicita (que precisavam ser redirecionadas).

    
por 09.12.2014 / 12:50

Tags