Eu tenho vários hosts service1.example.com, service2.example.com
por trás do gerenciador de proxy Nginx, onde o NPM lida com SSL e permite criptografar o acme. Agora instalei um novo host newhost.exmaple.com
que requer o gerenciamento de sua própria geração de certificado. Quero fazer com que o NPM encaminhe todas as consultas http e https newhost.exmaple.com
para um endereço IPv4 interno sem proxy.
Dei uma olhada nos streams, mas um stream não tem filtro de reconhecimento de nome de domínio. Os documentos avançados não contêm o que procuro.
Eu sei que o Nginx é capaz disso, relacionado:
- Encaminhamento Nginx TCP baseado no nome do host
- Um proxy reverso pode usar SNI com passagem SSL?
- Use o proxy NGINX (gerente) para encaminhar tráfego HTTPS e HTTP com base no nome do host
Estou executando o NPM no docker.
Tente isto se quiser que o NPM lide com SSL
Nota: você deve saber sobre redes e portas docker neste caso, tenho certeza que você sabia
Como alternativa você pode usar o manuseio de SSL no aplicativo, portanto, para fazer isso você deve criar o NPM raiz sem SSL e depois dentro dos contêineres docker, manipulá-lo com cert-bot por exemplo ...
Se você decidiu experimentar coisas novas:
Aparentemente você pode usar o HAproxy, ele tem esse recurso pronto para uso
você pode atingir seu objetivo mesmo sem a ajuda do gerenciador de proxy Nginx e do HAproxy, se estiver disposto a fazer isso, é claro (da maneira mais difícil)
Que tal configurar um servidor DNS como o bind (sou novo nisso e não sou um especialista, mas recomendo) e fazer tudo o que o gerenciador de proxy Nginx faz do zero, depois usar redirecionamentos e docker para isso. (Esta é a abordagem geral, pois estou tentando implementá-la sozinho, mas até onde eu sei, esse é o caminho. Atualizarei esta resposta imediatamente com detalhes depois que eu mesmo tiver feito isso)
De modo geral, fazendo tudo o que o NPM faz do zero, quero dizer configurar o servidor DNS e redirecionar e fazer todo o mapeamento para as pastas e tal
então você pode instalar SSL usando Cert-bot e Let's Encrypt ou configurá-lo manualmente para cada projeto que você possa ter, seja dentro ou fora do docker (outros servidores/pc na rede, basicamente criando e isolando o servidor DNS de servidores de serviço e/ou nós) .
No entanto, como você também deve ter adivinhado como a solução rápida, se você estiver disposto a atingir esse objetivo o mais rápido possível, independentemente de quão ingênuo possa parecer para o bem de seus planos de negócios, você pode comprar outro IP estático, outro roteador/ modem, um raspberry pi ou algum outro pc/servidor, faça todas essas coisas novamente, como uma cura temporária até que você possa fazer o recomendado