Я хотел бы знать, как использовать 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
:
Директива
!
полезна в ситуациях, когда не хочется reverse-proxy подкаталог, например
ProxyPass "http://backend.example.com/" местонахождение> ProxyPass "!" расположение>
В вашей ситуации это было бы:
<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/"