Я хотел бы знать, как использовать 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/"