【问题标题】:Is it possible to use relative path in ProxyPass/ProxyPassReverse?是否可以在 ProxyPass/ProxyPassReverse 中使用相对路径?
【发布时间】:2012-02-09 19:18:21
【问题描述】:

例如httpd.conf中有如下配置:

ProxyPass app   http://somehost:someport/App_1   
ProxyPassReverse app   http://somehost:someport/App_1   

现在我应该使用绝对 URL 将请求从“/myapp”转发到“/app”:

<Location /myapp >   
   ProxyPass http://localhost:8080/app
   ProxyPassReverse http://localhost:8080/app
</Location>

是否可以在 ProxyPass/ProxyPassReverse 中使用相对路径?

<Location /myapp >  
   ProxyPass /app  
   ProxyPassReverse /app  
</Location>  

【问题讨论】:

    标签: apache proxy apache2 reverse-proxy


    【解决方案1】:

    没有。

    apache docs about ProxyPass 表示目标必须是 URL。如果您尝试输入不是 URL 的内容(例如 /app),则会收到以下错误:

    ProxyPass URL 必须是绝对的!

    您应该改为查看mod_rewrite。它可以在服务器端重写请求,而无需重定向浏览器。以 /myapp -> /app 为例,一些简单的规则就足够了:

    RewriteRule ^/myapp /app [L]
    

    【讨论】:

    • 为什么可以使用平衡器构造? ProxyPass 平衡器://app.或 balancer://app - 它是 URL?
    • 是的,balancer://app 是一个 URL。它映射到一组成员,例如ajp://app.domain.com,它们也是 URL。当然ftp://some.host.com/dir也是一个URL,但是ProxyPass不支持。
    • ProxyPassMatch 怎么样?
    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2016-05-26
    • 2013-03-02
    相关资源
    最近更新 更多