mod_proxy和尾部斜杠?

我们使用httpd和mod_proxy作为我们不同Web服务器前面的反向代理

我们有我们的www子域指向反向代理,并mod_proxy指示从那里的请求。

我一直没有想出一个简洁的方式来说这个,所以我只会显示:

如果我们有一个网站http://blah.example.com/my-web-app ,我们通常会在反向代理中添加这样一行:

 ProxyPass /my-web-app http://blah.example.com/my-web-app 

以便用户可以访问http://www.example.com/my-web-app 。 当反向代理和Web服务器上的请求path组件( /my-web-app )相同时,会自动添加尾部的斜杠,就像有人直接访问http://blah.example.com/my-web-app

但是,如果path组件不同,例如:

 ProxyPass /my-web-app http://blah.example.com/some-other-path 

那么尾部的斜线不会被添加。

这种行为是否正常? 有一些configuration可以照顾这个吗?

请仔细阅读Apache httpd文档中有关ProxyPass的部分( http://httpd.apache.org/docs/current/mod/mod_proxy.html )。 您可以通过显式指定ProxyPass指令的两个参数的尾部/来解决此问题

 ProxyPass /my-web-app/ http://blah.example.com/some-other-path/