Redirecionar site para corrigir VM no host

1

Eu gostaria de configurar algum servidor com poucas VMs nele. E então cada VM terá um site diferente. Então, meu host, por exemplo, tem o DNS my.host.com, e apontarei para esse DNS, por exemplo, para outros endereços DNS, my.host.com - 1.2.3.4 my.host.com - virtual1.host.com my.host.com - virtual2.host.com

Agora, os endereços da VM da rede privada são: vm1 - 1.1.1.1 - e ela segura o site virtual1.host.com vm1 - 2.2.2.2 - e ela segura o site virtual2.host.com

então minha pergunta é como eu posso redirecionar para a VM correta Quero dizer, se eu clicar em virtual1.host.com eu irei para o meu host e o host deve me redirecionar para o site.

Eu quero usar apenas a porta 80 ou 443. E qual firewall ou proxy eu posso usar para esse tipo de redirecionamento? Também talvez seja o suficiente para usar o iptables para fazer isso e eu também estava pensando em HAproxy?

Alguma sugestão? E thx.

    
por nonus25 13.01.2013 / 04:08

1 resposta

0

ok pessoal eu fiz o que eu quero no host eu estava usando o iptables e eu solto todo o tráfego em 80 a 8080 e em 443 a 8443 para o proxy nginx, em seguida, do proxy eu estou enviando para o endereço correto. A comunicação entre vm (proxy) e vm (site) está sempre na porta 80

eu tive que configurar o certificado na VM onde é proxy e assiná-lo para o dns adequado e via proxy_pass enviar para o destino existe um exemplo de confs:

iptables -t nat -A PREROUTING -d host_ip/32 -i eth0 -p tcp -m multiport --dports 80 -j DNAT --to-destination proxy_ip:8080
iptables -t nat -A PREROUTING -d host_ip/32 -i eth0 -p tcp -m multiport --dports 443 -j DNAT --to-destination proxy_ip:8443
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

então meu nginx está em execução no modo chroot e há uma configuração:

server {
   listen       8080 ;
   server_name site_dns;
   rewrite        ^ https://$server_name$request_uri? permanent;
}

server {
  listen       8443 default_server;
  server_name site_dns;
  ssl on ;
  ssl_certificate /etc/nginx/server.crt;
  ssl_certificate_key /etc/nginx/server.key;
  access_log /var/log/nginx/site.access.log ;
  error_log  /var/log/nginx/site.error.log ;



  location / {
      proxy_pass  http://site_ip_vm;
      proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
      proxy_cache            one;
      proxy_cache_key         site$request_uri;
      proxy_cache_valid      200 3h;
      proxy_cache_use_stale  error timeout invalid_header updating http_500 http_502 http_503 http_504;
      proxy_ignore_headers   Expires Cache-Control;
      proxy_redirect http:// https://;
      proxy_buffering on;
      proxy_set_header        Host            $host;
      proxy_set_header        X-Real-IP       $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

e o apache é escutar apenas na porta 80. então toda a computação conectada com certs é feita no site proxy e o apache não é sobrecarregado, mais o mecanismo de armazenamento em cache deve me dar um bom desempenho de qualquer forma, eu verei depois de um tempo.

    
por 14.01.2013 / 22:33