HAproxy - adiciona caminho ao servidor backend

0

Estou configurando o HAproxy como um proxy reverso no meu NAS, porque gostaria de usar subdomínios fáceis de lembrar em vez de me referir aos aplicativos no meu NAS com seus números de porta.

Consegui fazê-lo funcionar, exceto por alguns 'servidores' backend, aqueles que não se referem apenas a uma porta, mas a um determinado caminho.

Por exemplo, eu gostaria de ter um ponto nav.mydomain.com para backend 127.0.0.1:9000/modules/navigator/www/login.php link

Meu primeiro pensamento foi configurar o back-end assim

frontend http-in
   bind *:80
   mode http

   acl nav hdr_beg(host) -i nav
   use_backend nav_node if nav

backend nav_node
   mode http
   server nav-server 127.0.0.1:9000/modules/navigator/www/login.php check

Mas aparentemente, não é tão simples assim ... Então fiz mais algumas horas de pesquisa sobre como lidar com isso e encontrei tópicos sobre reqrep que é bastante chinês para mim ... É por isso que decidi me registrar aqui para obter alguma ajuda para descobrir isso.

Por enquanto eu estou apenas tentando fazê-lo funcionar, em uma fase posterior eu vou (tentar) adicionar SSL.

    
por Koenraad 29.01.2018 / 00:08

2 respostas

0

Tenho experimentado o reqrep até encontrar um comando em funcionamento. Eu realmente não entendo o que todos esses personagens fazem, provavelmente há muitos, mas funciona!

reqrep ^([^\ :]*)\ /(.*)     \ /modules/navigator/www/ 
server nav-server 127.0.0.1:9000 check
    
por 30.01.2018 / 11:12
0

Firtsly, eu não acho que você quer um diretório (por exemplo, / no host virtual nav.example.com) para solicitar uma URL login.php. O que acontece quando, por exemplo /whatever é solicitado? Deve ser encaminhado para /modules/navigator/www/login.php/whatever ? É provavelmente apenas o caminho /modules/navigator/www/ ; um pedido vazio provavelmente será reescrito para /login.php , se necessário.

Supondo que você precisa reescrever / para /modules/navigator/www/ . Então:

server nav-server 127.0.0.1:9000 check
reqrep ^GET\ /(.*) GET\ /modules/navigator/www/

^ é o começo da linha, então o caminho é adicionado ao início.

    
por 29.01.2018 / 16:59

Tags