Configurando um servidor da Web inicial com vários serviços para permitir conexões baseadas em nome

1

Primeiro, deixe-me pedir desculpas se esta é uma pergunta muito simples. Tenho certeza que sim, mas meu principal problema é que eu não sei exatamente a terminologia exata a ser usada para procurar uma resposta.

Nos últimos anos, executei um servidor doméstico para me fornecer alguns serviços; ou seja, Plex, Owncloud (recentemente alterado para Nextcloud), um servidor Webmin para fornecer uma GUI e um pequeno servidor de e-mails apenas para fornecer atualizações de notificações do sistema.

Até agora, eu acessei tudo usando apenas o ip do servidor seguido pelo nome do serviço (no caso do Nextcloud, por exemplo, eu simplesmente navegue para https://192.168.1.50/nextcloud ) ou a porta (webmin é https://192.168.1.50:10000 enquanto o Plex é https://192.168.50:32400 )

Eu tenho desejado usar bind9 para configurar um servidor dns para permitir que eu acesse tudo por um nome de domínio em vez de seu endereço IP, e tendo algumas horas para mim hoje eu morri o alvo e comecei.

Eu tenho o próprio servidor DNS funcionando bem. Do meu laptop, posso pingar ubuntuserver (o nome do host do meu servidor) ou ubuntuserver.local.ftb , com local.ftb sendo meu domínio escolhido.

Por favor, note que isto não se destina a ser acessível fora da minha rede local, é apenas uma configuração interna.

Também configurei os registros de DNS para webmin.ubuntuserver.local.ftb , nextcloud.ubuntuserver.local.ftb e plex.ubuntuserver.local.ftb e faço com que eles apontem para meu servidor principal 192.168.1.50

A minha pergunta é, posso configurar o Apache de forma a apontar https://webmin.ubuntuserver.local.ftb a https://192.168.1.50:10000 , https://nextcloud.ubuntuserver.local.ftb a https://192.168.1.50/nextcloud e https://plex.ubuntuserver.local.ftb a https://192.168.1.50:32400 ? Eu presumo que esse redirecionamento não seria tratado pelo servidor DNS, já que ele não parece lidar com portas, mas é possível com o Apache?

    
por Will 09.04.2017 / 20:59

1 resposta

0

Sim, o Apache e o Nginx suportam "proxy reverso", onde você pode rotear pedidos com base em todo o VirtualHost (o cabeçalho do Host da solicitação) ou até mesmo em caminhos específicos. Procure a diretiva ProxyPass .

(Observe que os clientes só se conectam ao Apache, ou seja, o front-end - as portas dos serviços individuais não precisam estar acessíveis de fora).

Outra opção, exclusiva das conexões TLS (mas não necessariamente HTTPS) é rotear com base no nome do host dentro do campo TLS SNI. Haproxy, Nginx, stunnel e sniproxy são capazes disso - eu os usei para compartilhar uma porta entre HTTPS e IRC-SSL ao mesmo tempo.

    
por 09.04.2017 / 21:13