É possível usar tabelas IP para encaminhar portas atrás de um roteador?
Minha configuração é a seguinte: tenho um Raspberry Pi executando um pequeno site na porta 80 e um computador mais robusto executando um servidor Minecraft na porta 25565. Configurei o roteador para receber solicitações de cada porta e encaminhá-las para o local correto, mas também tenho um 'site' do Minecraft (com o mapa e tal) rodando no servidor do Minecraft, também na porta 80. Também tenho myurl.com.
Minha pergunta é: usando tabelas IP, posso encaminhar mc.myurl.com:80 para o site do servidor Minecraft, enquanto myurl.com:80 continua indo para o Raspberry Pi? Como faço para configurar isso?
E se eu remover o Raspberry Pi da equação? O mc.myurl.com encaminha para: 81 no mesmo servidor? (Eu teria que abrir :81 no roteador?)
Responder1
O que você está procurando é umproxy reverso. Apache pode jogar issopapelmas eu aconselho você a usar melhorNginxque é mais leve.
Você redirecionará a porta 80
para o seu Raspberry Pi e configurará o Nginx para fazer proxy das solicitações da mc.myurl.com
seguinte forma:
server {
listen 80;
server_name mc.myurl.com;
location / {
proxy_pass http://my.mine.craft;
}
}
Veja o Nginxdocumentaçãopara mais detalhes.
Responder2
Você poderia usar o módulo de proxy reverso do Apache2. Isso redirecionará as solicitações recebidas pelo nome de host do servidor mc para outro servidor http, que está localizado dentro da sua LAN. Seria uma ideia mais simples do que contar com firewalls.
Primeiro, instale o módulo:
apt-get install libapache2-mod-proxy-html
Crie 2 hosts virtuais. Um responderá às solicitações do seu site e o outro fará o proxy do tráfego para o seu site mc.
<VirtualHost YOUR.INTERNET.IP.ADDR:80>
ServerAdmin [email protected]
ProxyPreserveHost On
ProxyPass / http://LAN.IP.YOUR.MC.SITE:PORT/
ProxyPassReverse / http://LAN.IP.YOUR.MC.SITE:PORT/
ServerName mc.myurl.com
</VirtualHost>
<VirtualHost YOUR.INTERNET.IP.ADDR:80>
ServerAdmin [email protected]
DocumentRoot /var/www/sites/my_site
ServerName myurl.com
ErrorLog logs/intranet-error_log
CustomLog logs/intranet-access_log common
</VirtualHost>
Mais documentos aqui:
- Apachemod_proxydocumentação
- Hosts Virtuaisconfigurações comuns