gpt4 book ai didi

haproxy - 主机/路径/的HAProxy路径

转载 作者:行者123 更新时间:2023-12-02 05:28:16 26 4
gpt4 key购买 nike

由于我不是天生的编码员,请多多包涵。

这是我尝试使用HAproxy来实现的目标,但是经过数小时的检查后,我无法以某种方式使其工作。


  • domain.com/alpha
  • domain.com/beta


  • domain.com/alpha将指向backend1 / path / index.cgi
  • domain.com/beta将指向backend2 / path / index.cgi

  • 我尝试了多种方法,但都无济于事,我确实读过有关重写/重定向的信息,但是以某种方式使我感到非常困惑。例如“reqrep”

    通过使用alpha.domain.com指向backend1 / path可以按预期工作,但是由于证书限制,我需要内联路径。

    在此先感谢您,如果可能的话,请稍稍解释一下它的工作原理以及正确的术语(例如:重写,重定向),以便对此有所帮助,然后我将继续前进。

    最佳答案

    这是我能够想到的:

    frontend HTTP
    mode http
    bind *:80

    acl alpha url_beg /alpha
    acl beta url_beg /beta
    use_backend backend_alpha if alpha
    use_backend backend_beta if beta

    backend backend_alpha
    reqrep ^([^\ ]*\ /)alpha[/]?(.*) \1path/index.cgi
    server server_alpha localhost:8080

    backend backend_beta
    reqrep ^([^\ ]*\ /)beta[/]?(.*) \1path/index.cgi
    server server_beta localhost:8081

    显然,您将用正确的案例位置替换 localhost:8080localhost:8081

    说明

    首先,在名为HTTP的前端中,有两个ACL(访问控制列表)可以测试URL开头的内容(因此,关键字 url_beg)。这些规则的结果是,如果url以 /alpha开头,则名为 alpha的变量设置为true,然后对于beta相同。

    在前端的下一个步骤中,有两个 use_backend命令,如果变量 backend_alpha设置为true,则将请求定向到 alpha;如果将 backend_beta设置为true,则对 beta的请求相同。

    结果,前端完成了获取URL并决定使用哪个服务器的工作。

    除了文本 backend_alphabackend_beta以及各自服务器的位置以外,两个后端( alphabeta)几乎相同。后端中的第一个命令是您指出的 reqrep命令。 reqrep命令的作用是获取一个URL,使用正则表达式搜索特定部分,然后将其替换为其他内容。在这种情况下,我们有以下网址:
    http://example.com/alpha

    reqrep command的第一部分中:
  • ^([^\ ]*\ /)接受http://example.com/并将其存储在名为\1的变量中
  • alpha然后与给定URL中的alpha匹配
  • [/]?(.*)接受alpha之后的所有内容并将其存储在名为\2(在这种情况下,\2等于零,因为URL中的alpha之后没有任何内容)

  • 然后 reqrep命令的第二部分说,取 \1( http://example.com/)的内容,并将 path/index.cgi添加到末尾,并使新的URL发送到服务器。

    结果,对于alpha和beta url,发送到服务器的结果url为 http://example.com/path/index.cgi

    最后, server命令将请求发送到适当的服务器。

    我想指出的是,我不是复杂的正则表达式部分的专家(我也觉得有点困惑),但是希望其他知道更多的人可以更详细地解释它,或者如果我错了,可以纠正我。

    希望对您有所帮助:)

    关于haproxy - 主机/路径/的HAProxy路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256571/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com