OpenBSD: Como usar 'relayd' e 'httpd' para redirecionar solicitações de subdomínio

2

Situação

Eu criei a seguinte configuração no OpenBSD :

EntãoeutenhomeuservidorOpenBSDem192.168.1.250redirecionandotodasassolicitaçõeshttpparaohost-vmon192.168.30.2.

Ohost-vmemsioperanginxpararedirecionarsolicitaçõesdesubdomínioassim:

##thevirtualserverforthefoo-vmserver{listen80;server_namefoo.hermes-technology.de;location/{proxy_passhttp://192.168.30.3;}}##thevirtualserverforthebar-vmserver{listen80;server_namebar.hermes-technology.de;location/{proxy_passhttp://192.168.30.4;}}
  • Portanto,seosusuáriosenviaremumasolicitaçãoHTTPparafoo.hermes-technology.de,essasolicitaçãoseráredirecionadaparaohost-vm.
  • Posteriormente,ohost-vmredirecionaasolicitaçãocombasenonomedosubdomínioparaoiplocaldofoo-vm.

Pergunta

EugostariadeserdependenteapenasdospacotesbásicosdoOpenBSD,entãominhaperguntaé:

ComoépossívelredirecionarsolicitaçõesdesubdomínionamáquinahostparaoutrosendereçosIPlocais,alcançandoomesmoresultadoacimausandoapenashttpderelayd?

Maisinformações

Sevocêprecisarouquisermaisinformaçõessobreessaconfiguraçãopararesponderàminhapergunta,eutenhoumwriteupdetodaaconfiguraçãoaqui: blog.hermes- technology.de .

    
por Jan 20.06.2017 / 14:14

1 resposta

5

sobre relayd eu acho que algo como conseguiria o que você quer:

Isso define o ip onde você pode encontrar o foo "service" é uma lista de host basicamente (estilo pf)

table <fooservice> { 192.168.30.3 }
table <barservice> { 192.168.30.4 }

Aqui, você define um modelo para as regras a serem aplicadas em uma seção de retransmissão que corresponde à solicitação com o cabeçalho Host sendo foo.hermes-technology.de e, nesse caso, você encaminha para o host que está na tabela fooservice no < a href="http://man.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man5/relayd.conf.5#FILTER_RULES"> manual do relayd eles dizem que a seção anterior precisa uma instrução forward correspondente na seção de relés

http protocol "httpproxy" {

    pass request quick header "Host" value "foo.hermes-technology.de" \
        forward to <fooservice>

    pass request quick header "Host" value "bar.hermes-technology.de" \
        forward to <barservice>
    block
}

Isso define o relé e usa as duas tabelas e o protocolo definido acima.

relay "proxy" {
    listen on 192.168.30.2 port 80
    protocol "httpproxy"

    forward to <fooservice> port 80
    forward to <barservice> port 80
}
    
por 01.07.2017 / 10:46