当使用Apache来反向代理,是否有可能转发http://somesite.com/和http://somesite.com/foo到不同的服务器? 说一个去http:// internalserver1 /和另一个去http:// internalserver2 / foo
我显然可以进一步下降path(即http:// somesite / bar ),但它不可取。
你的虚拟主机中的指令的顺序似乎很重要。 是的 – 你可以达到你所需要的。 我只是运行testing:
ProxyPass /q http://host.one.com/img/ ProxyPass / http://another.host/
它工作正常 – 所有的请求[除了针对/ q / something] ware代理another.host。 那些/ q /不pipe – 去了host.one.com
你应该能够使用mod_rewrite来做到这一点。 它按顺序评估条件,您可以指定[L]标志使其停止处理更多的规则。
RewriteEngine On RewriteRule /foo/(.*) http://internalserver2/foo/$1 [P,L] RewriteRule /(.*) http://internalserver/$1 [P]
完整的mod_rewrite文档在http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html