apache virtualhost setup: servindo arquivos do diretório se existir, fallback para reverse proxying

1

Eu quero configurar um virtualhost do apache 2.4 para servir arquivos 'físicos' que existem no diretório 'var / www / html' (como o robots.txt, por exemplo).

Se o URI solicitado não for um arquivo existente, as regras de proxy reverso devem ser usadas.

Eu li sobre ProxyPassing condicional assim

<If "! -f %{REQUEST_FILENAME}">
    #ProxyPassReverseCookiePath / /author
    ProxyPassReverseCookieDomain localhost mywebsite.com

    #ProxyPass           / ajp://localhost:7009/
    #ProxyPassReverse    / ajp://localhost:7009/
    ProxyPass           / http://localhost:7080/
    ProxyPassReverse    / http://localhost:7080/
</If>

e depois dessas linhas eu colocaria as diretivas de localização.

Mas isso não funciona, em vez disso, ele está dizendo AH00526: Syntax error on line 45 of /etc/apache2/sites-enabled/000-default.conf: ProxyPass cannot occur within <If> section

Eu li sobre isso aqui: link (não a resposta aceita, mas 3 votos positivos).

Como posso usar a tag if? Ou existe uma maneira melhor de alcançar o que estou procurando? Obrigado por me apontar na direção certa!

    
por Manticore 19.12.2017 / 11:53

1 resposta

0

Algo parecido (não testado):

RewriteEngine on
RewriteCond "/var/www/html/%{REQUEST_URI}" !-f
RewriteRule "^/(.*)$" "http://localhost:7080/$1" [P]
    
por 19.12.2017 / 15:57