Как перенаправить на доменное имя с помощью https с помощью haproxy - PullRequest
0 голосов
/ 25 февраля 2019

Я пытался получить запрос и хочу перенаправить его на другой хост, используя имя 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]

Что-нибудь, что я скучаю, чтобы заставить это работать?Спасибо

...