Usar tabelas IP para encaminhar portas atrás de um roteador?

Usar tabelas IP para encaminhar portas atrás de um roteador?

É 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 80para o seu Raspberry Pi e configurará o Nginx para fazer proxy das solicitações da mc.myurl.comseguinte 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:

informação relacionada