Até 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:
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
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:
Assim, ficou possível continuar oferecendo URLs que são redirecionadas para qualquer computador local da minha rede.
Até a próxima!
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!
Deixe seu Comentário