【问题标题】:Using A Path Rewrite / Redirect In HA Proxy在 HAProxy 中使用路径重写/重定向
【发布时间】:2020-10-02 00:50:41
【问题描述】:

我正在使用 HA 代理,我有一个路径重定向设置并且有效,路径重定向到 webmin,但它不加载任何 css,并且在提交登录时,它到域而不是应该的路径。

我不确定这是否是 Ha 代理问题,也许是 webmin 中的一个配置选项,使其从文件夹/路径运行?

这是我对 Ha Proxy 的配置

frontend public
    # Listen on ports 80 and 443
    bind *:80
    # bind *:443 ssl crt /xxxxx

    mode http

    # Define ACLs for each domain
    acl admin url_beg  /webmin
    #acl admin path_beg -i /webmin

    # Figure out which backend (= VM) to use
    use_backend webmin if admin

backend webmin
    #http-request set-path %[path,regsub(^/webmin/,/)]
    #http-request set-path /webmin/%[path]
    #http-request replace-uri ([^/:]*://[^/]*)?(.*) \1/webmin\2 if !remove_webmin
    #http-request set-header X-Forwarded-Port %[dst_port]
    #http-request add-header X-Forwarded-Proto https if { ssl_fc }
    http-request set-header Host xxxx/webmin
    #http-response replace-value Location (.*):.* \1/webmin
    #rspadd Strict-Transport-Security:\ max-age=15768000;\ includeSubDomains
    #rspadd X-XSS-Protection:\ 1;\ mode=block

    http-request set-path %[path,regsub(^/webmin/,/)]
    #http-request set-path /webmin/

    http-request set-header Host %[src]
    http-request set-header X-Forwarded-For %[src]
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request set-header Connection "keep-alive"

    #acl missing_slash path_reg ^/webmin/[^/]*$
    #http-request redirect code 301 prefix /webmin drop-query append-slash if missing_slash

    #balance leastconn
    #option httpclose
    #option forwardfor
    #cookie JSESSIONID prefix

    # Redirect To Webmin
    server webadmin 127.0.0.1:10000 check

欢迎任何帮助,

谢谢,

【问题讨论】:

    标签: devops haproxy webmin


    【解决方案1】:

    所以我在这里有一个可行的解决方案,它不仅与 ha 代理有关,而且您还必须在 webmin 中设置前缀路径。

    旁注,也许不要使用“webmin”作为文件夹/路径重定向。由于 webmin 配置设置似乎使用该路径,所以你最终得到 'webmin/webmin'

    HA 代理配置

    frontend public
      # Listen on ports 80 and 443
      bind *:80
      # bind *:443 ssl crt xxxxx
    
      mode http
    
      # Define ACLs for each domain
      acl admin url_beg  /webmin
      #acl app hdr(host) -i xxxxx.com
    
      use_backend webmin if admin
    
    backend webmin
      http-request set-header Host DONAME-NAME-HERE/webmin
      http-request set-path %[path,regsub(^/webmin/,/)]
      http-request set-header X-Forwarded-For %[src]
      http-request set-header X-Forwarded-Port %[dst_port]
      http-request set-header Connection "keep-alive"
    
      http-response set-header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
      http-response set-header X-Frame-Options SAMEORIGIN
      http-response set-header X-XSS-Protection "1; mode=block"
    
      balance leastconn
      option httpclose
      option forwardfor
      cookie JSESSIONID prefix
    
      http-response replace-value Location (.*):.* \1/
    
      # Redirect To Webmin
      server webadmin 127.0.0.1:10000 check
    

    Webmin 配置文件

    referer=xxxx/webmin/
    host=xxx/webmin/
    webprefix=/webmin
    webprefixnoredir=1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-20
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      相关资源
      最近更新 更多