Como posso encaminhar um subdomínio para uma porta específica?

3

Minhas desculpas se isso foi perguntado antes. Eu não encontrei uma solução adequada então ... sim.

Quando um domínio específico, "example.com", é acessado, quero que ele aja normalmente. Em outras palavras, ele deve ir para a porta 80 como esperado e interagir com o Apache.

Quando um subdomínio diferente, "mc.example.com" é acessado, não quero que ele acesse o servidor web Apache. Eu quero que ele vá interagir com um programa diferente, escutando, digamos, a porta 4096. Assim, ir para "mc.example.com" teria a mesma função / similar que "example.com:4096". O serviço é Minecraft

Quando um terceiro subdomínio, "vpn.example.com" é acessado, eu quero que ele interaja com um serviço diferente, escutando, digamos, a porta 687. O serviço é openVPN

Existe uma maneira simples de fazer isso? Se assim for, o que é? Envolve a configuração de um VirtualBox no Apache (um método que tentei e falhei miseravelmente. XD)? Ou pode ser feito usando ipTables? Se isso significa alguma coisa, eu estou rodando o Centos 5.5 de 32 bits (eu acredito. É uma versão recente do Centos)

    
por Jarwain 17.02.2012 / 22:28

2 respostas

3

Não pode ser feito por nada. Quando o computador remoto abre uma conexão TCP, tudo o que ele informa é o endereço IP e o número da porta à qual deseja se conectar. Ele não informa qual hostname ele procurou no DNS para obter esse endereço IP. (A hospedagem virtual baseada em nome usa o cabeçalho Host: que é enviado como parte do protocolo HTTP, mas isso depois que a conexão é aberta.)

Mas se você está acessando um serviço diferente, o computador remoto deve estar pedindo para se conectar a um número de porta diferente, e você deve ser capaz de rotear com base nisso.

Se todos esses programas estiverem falando em HTTP, você poderá ter suas solicitações principais de proxy de servidor da Web para o servidor apropriado com base no cabeçalho Host: .

    
por 17.02.2012 / 22:41
1

Eu sei que é uma questão antiga, mas talvez haja uma solução: Eu encontrei a configuração do vhost @ work: Tente isso na configuração do virtualhost: (Eu não tenho 100% de certeza se isso funcionaria! :))

Alguém pode confirmar isso?

<VirtualHost *:80>
    ServerName sub.domain.com
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyRequests           Off
    ProxyPass               /       http://sub.domain.com:12345/
    ProxyPassReverse        /       http://sub.domain.com:12345/

   #... etc
    
por 27.06.2014 / 10:01