【问题标题】:How to route two different paths to the same server using apache如何使用apache将两条不同的路径路由到同一台服务器
【发布时间】:2016-12-12 02:49:48
【问题描述】:

考虑两个网址:

  1. www.mysite.com/*
  2. www.mysite.com/browse/*

后端运行在http://localhost:8080

我怎样才能确保所有具有以下模式的请求都将在我的后端结束,如下所示?

示例

www.mysite.com/doA --> localhost:8080/doA

www.mysite.com/browse/doA --> localhost:8080/doA

所以基本上 www.mysite.com/doA 和 www.mysite.com/browse/doA 的结果是一样的。

我想使用 apache 服务器。我可以使用 proxy_http 重定向一个。但它不适用于两个或多个网址:

这是我为一个网址工作的配置

<VirtualHost *:80>
  ProxyPass         /  http://localhost:8080/
  ProxyPassReverse  /  http://localhost:8080/
  ProxyRequests     Off
  <Proxy http://localhost:8080/*>
    Order deny,allow
    Allow from all
  </Proxy>
</VirtualHost>  

【问题讨论】:

    标签: apache server http-proxy


    【解决方案1】:

    这应该可行:

    <VirtualHost *:80>
    ServerName example.com
    ProxyRequests     Off
    ProxyPass         /browse/ http://localhost:8080/
    ProxyPass         /        http://localhost:8080/
    ProxyPassReverse  /        http://localhost:8080/
    </VirtualHost>
    

    已配置的ProxyPassProxyPassMatch 规则签入 配置顺序。第一条匹配的规则获胜。所以 通常你应该对冲突的ProxyPass 规则进行排序,以 首先是最长的 URL。否则,以后针对较长 URL 的规则将是 被使用 URL 的前导子字符串的任何早期规则隐藏

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 2022-01-20
    • 2010-09-09
    相关资源
    最近更新 更多