Alguém pode me orientar sobre o que procurar para obter um roteador/gateway/firewall para meu ambiente de escritório doméstico para poder executar vários, por exemplo, servidores Web na porta 80, com um IP público. Eu sei que isso pode ser feito usando Apache ou IIS em um computador servidor. Um roteador Cisco ou Netgear?
Por exemplo:
host1.exemplo.com:80 -> 192.168.0.101
host2.exemplo.com:80 -> 192.168.0.102
Responder1
Openwrt tem um bom suporte para Apache/Squid. Usei o apache até para proxy reverso. A única coisa que você precisa é de um roteador compatível com openwrt.
Segunda coisa, você precisa configurar o apache (sugiro o apache para isso) neste método especial de trabalho de proxy. Não é tão difícil quanto parece. Se você quiser, fiquei feliz em copiar e colar alguns exemplos de configuração neste post.
Não há muitos problemas com a necessidade da CPU de tal proxy - a maioria dos roteadores não possui uma CPU muito forte - porque o que essa configuração de hw/sw faz não é mais como se apenas pacotes fossem encaminhados. Não existem coisas que exigem muita CPU, como interpretação fe php ou jvm, e o apache pode rodar com seu mpm "trabalhador", no modo threaded, que é muito rápido.
Responder2
Os roteadores normalmente não executam servidores. Roteadores baseados em OpenWRT e DD-Wrt podem fornecer essa funcionalidade se tiverem memória suficiente. Isso ocorre porque eles estão executando um kernel Linux. A capacidade do servidor Web é feita executando um servidor Web ou proxy como Apache ou Squid.
Se você tiver vários sites pequenos para servidor, poderá usar um Rasberry Pi ou dispositivo semelhante para executar seus sites. Se você precisar de mais capacidade, um pequeno servidor executando Linux pode fornecer recursos de firewall e servidor Web. Comecei com um sistema desktop reciclado com uma segunda placa de rede rodando Linux como servidor Web e firewall.
Eu faço essa separação no servidor web. Os principais servidores da web entregam conteúdo com base no cabeçalho Host. O servidor web Apache chama essa funcionalidade de VirtualHosts. É possível fazer proxy de parte ou de todo o tráfego de um Host para um segundo servidor.
HTTPS de vários domínios é mais difícil porque os certificados estão associados a um nome de host. Se os domínios estiverem relacionados, um certificado curinga ou de vários domínios funcionará. Alguns servidores podem negociar o nome do host antes de fornecer o certificado, embora eu nunca tenha implementado isso com sucesso.
Você desejará que seu roteador encaminhe solicitações HTTP para seu servidor web. A maioria dos roteadores fornece esse recurso por porta e/ou como endereço DMZ.