haproxy 将 ip 请求重定向到 ip/path

haproxy 将 ip 请求重定向到 ip/path

我有一个 haproxy 节点和其后面的 3 个应用程序服务器 (tomcat)。用户必须打开http://10.0.0.1(通过 IP 地址),然后重定向到http://10.0.0.2/apphttp://10.0.0.3/apphttp://10.0.0.4/app

当前 haproxy 配置:

global
    log 127.0.0.1   local0
    log 127.0.0.1   local1 notice
    chroot /var/lib/haproxy
    user haproxy
    group haproxy
    daemon
    maxconn 50000
defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
#       option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
    retries 3
    redispatch
    contimeout 1s
    clitimeout 2s
    srvtimeout 3s
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http
    listen stats :1941
    mode http
    stats enable
    stats hide-version
    stats realm Haproxy\ Statistics
    stats uri /
    stats auth xxx:xxx
listen appfarm 10.0.0.1:80
    mode http
    stats enable
    stats auth xxx:xxx
    balance source
    hash-type consistent
    option httpclose
    option forwardfor
#   option httpchk HEAD /check.txt HTTP/1.0
    server app01 10.0.0.2:8080/app check
    server app02 10.0.0.3:8080/app check
    server app03 10.0.0.4:8080/app check

通过该配置,我从地址 10.0.0.1:8080 获得了 tomcat 欢迎页面,其中没有 /app 地址。

答案1

您不能在服务器行上添加这样的路径,您需要在服务器行上方的监听块中使用重定向:

redirect location /app if { url / }

并将服务器线路转换为

server app01 10.0.0.2:8080 check

http://cbonte.github.io/haproxy-dconv/1.6/configuration.html#redirect以获得进一步的解释/示例,请注意,此示例使用匿名 ACL,如果配置较大,则可能会变得混乱。

相关内容