Назад | Перейти на главную страницу

Обход локации с псевдонимом в Apache2

Я хотел бы знать, как использовать Apache в качестве обратного прокси для определенного пути и в качестве локального сервера для его подпутей.

Для определенного места я использую Apache в качестве обратного прокси (https://my.server.com/my-tools):

<Location /my-tools>
    Order allow,deny
    Allow from all
    ProxyPass http://10.1.1.11:3101/my-tools
    ProxyPassReverse http://10.1.1.11:3101/my-tools
</Location>

Дело в том, что для его сборки я бы хотел использовать локальный сервер (https://my.server.com/my-tools/images/). Я безуспешно пытался добавить псевдоним:

Alias /my-tools/images/ /home/myself/public/images/
<Directory /home/myself/public/images/>
    Order allow,deny
    Allow from all
</Directory>

Я тоже пытался добавить это, но это тоже не сработало:

<Location /my-tools/images/>
    SetHandler None
</Location>

Когда я вхожу, он продолжает перенаправлять на удаленный сервер https://my.server.com/my-tools/images/myimage.png, например.

Есть прямой пример в mod_proxy ProxyPass документация:

В ! Директива полезна в ситуациях, когда вы не хотите использовать обратный прокси для подкаталога, например

<Location "/mirror/foo/">
    ProxyPass "http://backend.example.com/"
</Location>
<Location "/mirror/foo/i">
    ProxyPass "!"
</Location>

В вашей ситуации это будет:

<Location "/my-tools/images">
    ProxyPass "!"
    Alias "/home/myself/public/images"
</Location>
<Location "/my-tools/">
    ProxyPass http://10.1.1.11:3101/my-tools/
    ProxyPassReverse http://10.1.1.11:3101/my-tools/
</Location>

Или с альтернативным синтаксисом:

ProxyPass "/my-tools/images" "!"
Alias "/my-tools/images" "/home/myself/public/images"
ProxyPass "/my-tools/" "http://10.1.1.11:3101/my-tools/"
ProxyPassReverse "/my-tools/" "http://10.1.1.11:3101/my-tools/"