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.