Redirecionamento para serviços em NAT ou Rede em Ponte somente com um subdomínio

1

Eu tenho um subdomínio (dyndns). xyz.dyndns.com (f.e.)
Aqui minha pergunta começa:

  • Eu tenho um servidor para virtualização.
  • No servidor, tenho várias VMs onde diferentes serviços da web estão disponíveis por meio de https.
  • Meu roteador está configurado com xyz.dyndns.com
  • VMs podem ser acessadas por NAT ou ser conectadas ao roteador

Como é possível acessar o WebService da VM_1 e da VM_2 como: https://xyz.dyndns.com/vm_1_webservice ou https://xyz.dyndns.com/vm_2_webservice

Porque preciso adicionar regras de redirecionamento ao roteador.
Eu sei que, com a ponte das VMs, posso simplesmente redirecionar o http para a VM no roteador. Na minha rede local, configurei qualquer coisa com DNAT (iptables).
Ou seja quando eu vou traga localhost (servidor): 40001 (porta) f.e. Eu serei redirecionado para o WebService da VM_1, que é acessível por meio de SSL. Como: https://127.0.0.1:40001/vm_1_webservice
Isso funciona bem. Como continuar (com nginx ou apache no host?)

    
por x4k3p 23.01.2014 / 04:12

1 resposta

2

A abordagem típica é configurar um servidor da Web, como Nginx ou Apache, na caixa do roteador / comutador, ou ter as portas de redirecionamento do roteador / da caixa de comutação 80 & 443 para um host interno que está executando o Nginx ou o Apache.

Depois que o tráfego tiver sido configurado para passar para um servidor da Web, você poderá configurar hosts virtuais no servidor da Web, o que pode direcionar o tráfego para o vm1_webservice apropriado, vm2_webservice, etc.

Nginx

Eu vou te mostrar 1 método básico do Nginx, mas você pode ficar muito elaborado com essas regras uma vez que você perceba como ele funciona. Também dê uma olhada neste tutorial intitulado: Como o nginx processa uma solicitação , que mostra como você pode configurar o Nginx para serviço de vários sites em uma única porta 80/443.

server {
  server_name www.example.com
  location / {
    proxy_pass http://localhost:4567/;
  }
}

server {
  server_name www.example2.com
  location {
    proxy_pass http://localhost:4568/;
  }
}

Você alteraria as linhas proxy_pass para corresponder à porta @ host em que o vm1_webservice estava sendo executado, por exemplo.

    
por 23.01.2014 / 04:51