Ajuda do Ngnix - Várias VMs usando Nginix (ESXi com IP público único)?

Ajuda do Ngnix - Várias VMs usando Nginix (ESXi com IP público único)?

No momento, estou tentando entender o Nginx e preciso de alguma orientação; Isso é muito novo para mim, então desculpe se já foi respondido (eu pesquisei primeiro!).

Cenário: Eu tenho um servidor Seafile (cloud.example.com) e um servidor Zammand (support.example.com) ambos em VMs Ubuntu (1 VM para cada) que tenho SSL com Certbot. Obviamente, posso executar qualquer um dos SSL, mas como ambos usam a porta 443, agora tenho um problema sem usar o Ngnix corretamente.

Minha primeira pergunta é: posso ter outra VM exclusivamente para Ngnix que passará as solicitações de URL para outras VMs ou preciso do Seafile e do Zammand no mesmo servidor para usar Ngnix/SSL para ambos? (Instalei ambos em uma VM para teste no momento).

SE eu executar a partir de um único servidor (Seafile e Zammand instalados - embora eu prefira cada um em sua própria VM), presumo que só preciso editar meu "/etc/nginx/sites-available/default" e adicionar caminhos de roteamento lá? Atualmente tenho 3 "sites disponíveis" - Seafile, Zammand e padrão. Vejo que há "sites ativos" que atualmente é "seafile". Portanto, tanto cloud.example.com quanto support.example.com, ambos roteiam para seafile (cloud.example.com)

Ou estou olhando para isso completamente errado? Qualquer conselho construtivo é bem-vindo! Peço desculpas se não descrevi isso muito claramente.

Responder1

Sua melhor aposta seria criar uma terceira VM e configurar o nginx lá. Você também pode configurá-lo em qualquer uma das VMs existentes.

Depois disso, você precisa configurar o nginx, para usar várias entradas de "servidor", uma para cada domínio que você está servindo e direcionando para um backend diferente.

Existem muitos tutoriais diferentes sobre como fazer isso na web.

Responder2

Então você tem dois servidores separados e independentes, certo? Se isso for verdade, você precisará usar algo como inspeção SNI para determinar para qual host proxy a conexão. Isso pode ser feito sem encerrar a conexão SSL começando com nginx 1.11.5 e o ngx_stream_ssl_preread_module.

Você precisaria configurar a diretiva ProxyPass para permitir o envio de dados para o sistema remoto por trás do proxy. Você deve então certificar-se de que o host Nginx esteja na Internet para que todas as consultas passem por ele primeiro.

Ao usar a inspeção SNI e proxies de fluxo TCP, o servidor remoto lida com todas as suas conexões SSL diretamente, o nginx apenas faz proxy do tráfego de um ponto final IP.

Eu também verificaria isso:https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

Abordando especificamente a inspeção SNI ao usar proxies TCP Stream:http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.htmlO SNI é incluído durante o handshake TLS antes que o handshake seja realmente processado, portanto, isso permite que o nginx envie o tráfego para o endpoint correto e permite que esse endpoint realmente faça o handshake TLS.

informação relacionada