Reescrita do pedido de HAProxy

3

Estou tentando configurar o proxy de passagem com o HAProxy.

Versão: - HA-Proxy versão 1.7.5 2017/04/03

Eu tenho dois URLs abc.com/foo e abc.com/bar e quero que ele seja redirecionado para os servidores de back-end que estão atendendo a solicitação como 10.0.0.1/xyz /

Por exemplo, se minhas solicitações chegarem como abc.com/foo/login, essa solicitação deverá ir para meu servidor de back-end como 10.0.0.1:7003/xyz/login, mas o front-end deve mostrar apenas abc.com/ foo / login.

Eu tentei usar abaixo

 "http-request redirect code 301 location http://%[hdr(host)]%[url,regsub(^/foo/,/bar/,)] if { path_beg /foo }"

mas está mudando o URL como abc.com/xyz

Eu tenho usado nginx a partir de agora, abaixo está minha configuração do mesmo.

server {
   listen 8443;
        underscores_in_headers on;

location /Recharge {
        proxy_pass http://backend/RetailerApp;
        proxy_read_timeout 15;
}

location /Gateway {
        proxy_pass http://backend/RetailerApp;
        proxy_read_timeout 15;
}
}

upstream backend_preprod {
   server 10.5.214.237:7005;
   server 10.5.214.237:7004;
}
    
por Faisal Muazzam 01.05.2017 / 17:56

1 resposta

5

Você não deseja usar o redirecionamento porque isso redirecionará o cliente para o URL fornecido. Você só precisa reescrever o URL da solicitação.

reqrep ^([^\ :]*)\ /foo/(.*)     \ /xyz/
reqrep ^([^\ :]*)\ /bar/(.*)     \ /xyz/

link

O cliente ainda verá o caminho / foo ou / bar, isso só irá reescrevê-lo na comunicação entre o proxy e o servidor backend.

    
por 01.05.2017 / 18:48

Tags