如何使用haproxy使用https重定向到域名

时间:2019-02-25 09:11:50

标签: haproxy

我试图接收请求,并希望使用dns名称将其重定向到其他主机,并使用https协议公开。例如,我的服务器是http://8.8.8.8:10101/partnerA/getUser。我希望haproxy将其重定向到https://partner.com/partnerA/getUser(与源相同的路径)。 我还想按路径过滤另一个重定向目标,例如http://8.8.8.8:10101/partnerB/getMarketShare将通过HAProxy重定向到https://subdomainb.differentpartner.com/partnerB/getMarketShare(notice,该路径也遵循相同的规则,但是基于路径它将给出不同的主机名。

我在haproxy.cfg下面尝试过

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  main
    bind *:10101
    acl url_partnerA       path_beg -i /partnerA
    acl url_partnerB       path_beg -i /partnerB
    http-request redirect scheme https if url_partnerA
    http-request redirect scheme https if url_partnerB
    http-request redirect prefix https://partnerA.com if url_partnerA
    http-request redirect prefix https://subdomainb.differentpartner.com/ if url_partnerA
    default_backend             app

#---------------------------------------------------------------------
# round robin balancing between the various backends
backend app
    balance     roundrobin
   # server  app1 127.0.0.1:11003 check

但是每次我访问(使用http)POST http://8.8.8.8:10101/partnerA/getUser时,haproxy -f haproxy10101.cfg -d的日志都会给我

00000000:main.accept(0005)=0009 from [8.8.8.8:48554] ALPN=<none>
00000000:main.clireq[0009:ffffffff]: POST /partnerA/getUser HTTP/1.1
00000000:main.clihdr[0009:ffffffff]: Host: 8.8.8.8:10101
00000000:main.clihdr[0009:ffffffff]: User-Agent: curl/7.47.0
00000000:main.clihdr[0009:ffffffff]: Accept: */*
00000000:main.clihdr[0009:ffffffff]: Authorization: Basic dGNhc2g6RzBqM2tmMHJsMWYzIQ==
00000000:main.clihdr[0009:ffffffff]: Content-Type: application/json
00000000:main.clihdr[0009:ffffffff]: Postman-Token: 45a236c-740a-4859-a13a-1c45195a99f2
00000000:main.clihdr[0009:ffffffff]: cache-control: no-cache
00000000:main.clihdr[0009:ffffffff]: Content-Length: 218
00000000:main.clicls[0009:ffffffff]
00000000:main.closed[0009:ffffffff]

我想让它工作吗?谢谢

0 个答案:

没有答案