Как ProxyPass, если запрос не соответствует файлу - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь реализовать следующее поведение: Если запрос соответствует файлу в /var/www/html, то отправьте его, в противном случае, ProxyPass на другое имя хоста и порт. Я знаю о директиве RewriteCond и о том, что мы можем исключить какой-либо путь из ProxyPass, но это не помогает мне достичь того, чего я хочу.

На данный момент мой конфиг выглядит так:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<VirtualHost *:80> 
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass /backend/ http://server:8080/backend/
    ProxyPassReverse /backend/ http://server:8080/backend/
    ProxyPass / http://client:4000/
    ProxyPassReverse / http://client:4000/
</VirtualHost>

1 Ответ

0 голосов
/ 09 января 2019
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<VirtualHost *:80>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /backend/ http://server:8080%{REQUEST_URI} [P,L]
ProxyPassReverse /backend/ http://server:8080/backend/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule / http://client:4000%{REQUEST_URI} [P,L]
ProxyPassReverse / http://client:4000/
</VirtualHost>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...