Estou supondo que você esteja atrás de um roteador NAT e tenha apenas 1 IP externo estático.
FTP e HTTP usam porta diferente. Tudo que você precisa fazer é encaminhar http / https para o seu servidor web, encaminhar ftp para o seu servidor ftp. Isso é feito no roteador.
Você não precisa de uma configuração de host virtual no apache.