【问题标题】:Enable downloading from multiple sources using one URL w/o Apache2使用一个不带 Apache2 的 URL 从多个来源下载
【发布时间】:2017-04-21 04:15:36
【问题描述】:

有没有办法让客户端通过一个固定链接实际从多个分布式源下载文件?

例如,名为BigFile.tar.gz 的大文件实际上在a.com/f.tar.gzb.com/f.tar.gzc.com/f.tar.gz 上复制。将固定下载链接提供给客户端all.com/BigFile.tar.gz。有没有办法配置一个 HTTP 服务器,比如使用 Apache2,使客户端能够同时从$(a-c).com/f.tar.gz 这 3 个源下载?

Web 服务器领域的新手。但是,我设法使BigFile.tar.gz 可以从$(a-c).com 之一下载,比如a.com/f.tar.gz。确切地说,Apache2 的 RedirectMatch 用于此目的,正如 https://www.linode.com/docs/web-servers/apache-tips-and-tricks/redirect-urls-with-the-apache-web-server 中所建议的那样。这是一个一对一映射/重定向。

但不知道如何启用一对三映射。

有什么建议吗?

谢谢

【问题讨论】:

    标签: linux apache ubuntu


    【解决方案1】:

    请仔细查看 mod_proxy 模块,特别是通过https://httpd.apache.org/docs/2.4/mod/mod_proxy_balancer.html 扩展的 mod_proxy_balancer 模块

    基本上你要做的就是像这样设置代理指令:

    <Proxy "balancer://mycluster">
        BalancerMember "http://192.168.1.50:80"
        BalancerMember "http://192.168.1.51:80"
    </Proxy>
    ProxyPass "/test" "balancer://mycluster"
    ProxyPassReverse "/test" "balancer://mycluster"
    

    这个 sn-p 取自上面的链接。给你分解一下,让你更好地理解这是怎么回事,我会逐行说明。

    <Proxy "balancer://mycluster"> 
    

    这一行告诉代理模块您要创建一个名为“mycluster”的 Apache 负载均衡器

    BalancerMember "http://192.168.1.50:80"
    BalancerMember "http://192.168.1.51:80"
    

    这两行基本上是在负载平衡集群中有服务器 A (50) 和服务器 B (51)

    ProxyPass "/test" "balancer://mycluster"
    

    在这里,我们基本上将路径 all.com/test 映射到然后指向我们临时集群中的两台服务器之一

    ProxyPassReverse "/test" "balancer://mycluster"
    

    这一行告诉 Apache 使用临时集群中服务器的信息更新一些标题行

    为此,您基本上需要 3 个 Apache 实例或 3 个服务器设置。一个将充当您的负载平衡器,另外两个将响应。您需要确保您想要提供的内容在您的轮班集群中的所有服务器上。

    如果您希望 all.com 在浏览器 URL 中显示而不考虑负载平衡,请确保在 &lt;Proxy "balancer://mycluster"&gt; 之前添加 ProxyPreserveHost On

    【讨论】:

    • 非常感谢您提供的信息,干净,解释清楚并且确实有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    相关资源
    最近更新 更多