我想知道如何使用Apache作为特定path的反向代理和本地服务器的子path。
对于特定的位置,我使用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>
关于它的assests,我想使用本地服务器( 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>
例如,当我inputhttps://my.server.com/my-tools/images/myimage.png ,它会保持redirect到远程服务器。
在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/"