Hospedando um servidor com a porta 80 bloqueada

| | Comentários(0) | TrackBacks (1)
bloqueado.jpgAté hoje eu era assinante fiel do Speedy da Telefônica. Porém, o serviço de atendimento somado ao alto custo do Speedy Business de 2Mb me fizeram migrar para o Virtua 6Mb mega-flash.

O único problema da migração se deu quando eu descobri que a porta 80 estava bloqueada. Eu usava a minha conexão apra hospedar sites de demonstração e para outras finalidades, como para oferecer builds diários do meu projeto open-source: o JFileHelpers.

Depois de buscar muito uma solução, inclusive em fóruns e sites como o Stackoverflow, nenhuma solução foi satisfatória. Todas elas envolviam um redirecionamento para outras portas, como 8080, o que eu não queria.

Enfim, acredito ter achado a solução ideal: eu já havia usado o Apache anteriormente para servir de um proxy transparente. Ou seja, você faz a requisição para um servidor, ele internamente redireciona este request para outro servidor web, e retorna o conteúdo ao usuário. Tudo isso de forma transparente. É uma espécie de façade ou plugging server. Para isso, precisava ter um servidor Apache em um local cuja porta 80 fosse acessível.

Veja o que eu fiz...
Primeiro passo - Escolher o VPS mais barato que tivesse boa credibilidade

Pesquisei bastante, principalmente nos fóruns do HostingFu e do WebHostingTalk. Decidi então contratar o patrocinador da HostingFu, que oferece um virtual private server bem barato. Este servidor roda um linux Debian na plataforma Xen, e tem 2Gb de disco e 64Mb de memória (mais que suficiente pro que eu preciso) e com tráfego mensal de 100Gb.

Tudo isso saiu por apenas US$ 7.16 ao mês, depois de usar cupom que dá 10% de desconto prá sempre. Se você quiser aproveitar este preço, use este link ou o código WJB8WM. Aviso: se você contratar o serviço eu ganho um mês grátis de assinatura e você 10% prá toda a vida. Se você não quiser usar este link, você pode assinar direto no site da VPSLink.

Segundo passo - Configurar o Apache remoto para redirecionar requests para o meu Apache

Esta modalidade de VPS é unmanaged com root access, então você pode fazer o que quiser no servidor. Eu configurei o Apache para fazer forward transparente dos requests para o meu servidor, na porta 8081;

Aqui está a configuração do Apache no servidor remoto:

<VirtualHost *:80>
  ServerName mydomain.com
  ServerAlias www.mydomain.com *.mydomain.com
  RewriteEngine On
  RewriteCond %{HTTP_HOST} (.*)\.mydomain\.com [NC]
  RewriteRule (.*) http://local.mydomain.com:8081/%1$1 [P]
</VirtualHost>

Eu utilizei para isso os módulos mod_proxy e mod_rewrite do Apache. Tive também que configurar o mod_proxy para permitir os redirects, retirando o Deny from all, substituindo por Allow for all ou apenas para os hosts que quiser.

Com esta configuração, todos os requests como http://subdomain1.mydomain.com/script?a=b são encaminhados, de forma totalmente transparente pelo servidor para http://mylocalserverdns.mydomain.com:8081/subdomain1/script?a=b, então eu posso hospedar qualquer domínio que quiser localmente, apenas precisando para isso criar um novo diretório no meu servidor local que seja igual ao nome do subdomínio.

Terceiro passo - Configurando o Apache local

No meu servidor local (que é um Ubuntu server), eu fiz a configuração que mapeia subdiretórios para outras portas ou outros servidores internos, dependendo do que eu quero. Eu tenho, por exemplo, um servidor Hudson de integração contínua para java rodando em uma máquina da minha rede, na porta 8088. Foi só redirecionar /hudson para ele.

Segue a configuração do meu Apache local:
<VirtualHost *:8081>
  ServerName mylocalserverdns.mydomain.com

  ProxyPass /app1 http://127.0.0.1:8088
  ProxyPassReverse /app1 http://127.0.0.1:8088
  ProxyPassReverse /app1 http://local.mydomain.com:8088/app1

  ProxyPass /app2 http://127.0.0.1:8089
  ProxyPassReverse /app2 http://127.0.0.1:8089
  ProxyPassReverse /app2 http://local.mydomain.com:8089/app2
</VirtualHost>

Assim, ficou possível continuar oferecendo URLs que são redirecionadas para qualquer computador local da minha rede.

Até a próxima!

1 TrackBacks

Veja abaixo a lista de Blogs que referenciam este artigo: Hospedando um servidor com a porta 80 bloqueada.

URL de TrackBack para o artigo: http://blogs.felipecoury.com/mt-tb.cgi/18

Até hoje eu era assinante fiel do Speedy da Telefônica. Recentemente, decidi migrar para o Virtua 6Mb mega-flash. O único problema da migração se deu quando eu descobri que a porta 80 estava bloqueada. Veja o que eu fiz prá sair dessa... Leia Mais

Deixe seu Comentário

Sobre este Artigo

Esta página contém um único artigo, escrito por Felipe Coury e publicado em October 9, 2008 9:31 PM.

Home Office - Reuniões em Pé é o artigo anterior deste blog.

O conteúdo atual está no índice principal o procure nos arquivos, onde você encontra todo o conteúdo.

Clicky Web Analytics