Encaminhar todas as portas dependendo do domínio

2

Um amigo e eu estamos fazendo um pouco de webhosting para nós. Atualmente todas as páginas estão sendo executadas em um servidor através dos hosts virtuais do Apache2. Sabemos que queremos criar servidores únicos para cada site com acesso ssh, servidor FTP e outras coisas.

Eu tentei um pouco e descobri o ProxyPass como no exemplo a seguir:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ServerName example.com
        ServerAlias www.example.com

        ProxyRequests Off
        ProxyPass / http://192.168.2.141/
        ProxyPassReverse / http://192.168.2.141/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Parece funcionar muito bem, mas funciona apenas para o protocolo http. Eu também quero encaminhar ssh, ftp, etc.

Alguém tem alguma ideia?

    
por rudolf97 05.11.2014 / 11:45

1 resposta

2

Infelizmente, você está usando Hospedagem Virtual Baseada em Nomes , o que funciona porque apache lê o cabeçalho HTTP para o nome do host do cliente e decide qual <VirtualHost> bloquear para usar dependendo desse valor. Seu bloco diz para procurá-lo em outro servidor.

Não há facilidade semelhante em ssh ou ftp .

O mais próximo que você pode obter é usar iptables para encaminhar pacotes de uma porta para um servidor diferente:

# iptables - nat -A PREROUTING -p tcp --dport 1022 -j DNAT --to-destination 192.168.2.141:22
# sysctl -w net.ipv4.ip_forward=1

Isso escutará na porta 1022 do seu servidor e encaminhará o tráfego para a porta 22 de 192.168.2.141. Você (ou seu amigo) precisará ssh [username@]192.168.2.141 -p 1022 para acessar esse servidor.

Você pode adicionar outra linha iptables para transferir a porta 1023 para a porta 22 de outro servidor e assim por diante. Provavelmente você poderia fazer o mesmo com ftp lendo esta pergunta ServerFault.

    
por 05.11.2014 / 13:12