【问题标题】:HAProxy path_beg not redirectingHAProxy path_beg 不重定向
【发布时间】:2021-09-06 20:47:47
【问题描述】:

我正在测试一个简单的 haproxy 规则,让 http://localhost/haproxy-dconv 将我带到 http://cbonte.github.io/haproxy-dconv,但它不起作用。 404 响应似乎来自该站点,但路径未解析。

frontend HTTP
  mode http
  bind *:80

  acl url_dconv path_beg /haproxy-dconv
  use_backend dconv-backend if url_dconv

backend dconv-backend
  mode http
  server dconv cbonte.github.io

【问题讨论】:

    标签: haproxy


    【解决方案1】:

    试试这个 -

    frontend HTTP
        mode http
        bind *:80
        use_backend dconv-backend if { path_beg /haproxy-dconv/ }
    
    backend dconv-backend
        mode http
        server dconv cbonte.github.io
    

    来源:https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#use_backend

    【讨论】:

      【解决方案2】:

      那是因为正在发送的 Host 标头是 localhost,而不是 cbonte.github.io。将此添加到您的后端:

      http-request set-header Host cbonte.github.io
      

      另请注意,如果没有结束斜线,您将收到 301,因此请确保发送 http://localhost/cbonte-dconv/ 并修复您的 ACL。

      【讨论】:

        【解决方案3】:

        您以不正确的方式使用 Haproxy。

        您需要匹配 ACL 以获取主机和查询参数之间的 URL:

        acl url_dconv path_beg /haproxy-dconv
        

        如果 ACL 匹配,则使用此 ACL 从 localhost 重定向:

        redirect prefix http://cbonte.github.io code 301 if url_dconv
        

        但这又是一个思考重定向和匹配路径的概念问题。

        【讨论】:

          猜你喜欢
          • 2018-08-25
          • 1970-01-01
          • 2015-10-27
          • 2021-03-20
          • 2018-11-25
          • 1970-01-01
          • 2012-12-10
          • 2021-10-13
          • 2020-02-12
          相关资源
          最近更新 更多