Configurando o arquivo htaccess para o CDN auto hospedado

1

Estou tentando configurar um cdn auto hospedado para o meu site, mas estou tendo problemas com as regras no arquivo htaccess e não consigo fazer com que ele funcione.

No momento, o servidor ftp que funcionará como CDN tem a seguinte estrutura de sistema de arquivos:

/
www/
www/htaccess
www/index.html
www/cdn/*
incremental/*
full/*

Meu .htaccess se parece com isso agora:

Options All -Indexes

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

#This snippet basically stops anyone viewing any file on your site that begins with "hta", this will protect it and make it somewhat safer.
<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>

<Files /cdn>
   Options +Indexes
   Satisfy Any
   Allow from all
</Files>

Eu quero permitir o acesso à pasta cdn e proibir qualquer outro acesso às outras pastas, porque em incremental e completo existem backups do meu servidor principal.

Eu tenho procurado por regras para alcançar esse comportamento, mas nada funciona.

Eu tenho que permitir índices na pasta cdn?

Atenciosamente e obrigado antecipadamente (E desculpe pelo meu inglês)

    
por ElBaulP 10.07.2013 / 23:51

1 resposta

1

Não ser um idiota, mas isso não soa como se você estivesse construindo um CDN. Todo o conceito de um CDN depende da entrega do conteúdo de seus usuários a partir de um nó mais próximo deles, em vez de seus usuários terem que se arrastar pela Internet para uma única caixa.

É possível, em sua pesquisa, que você tenha dificuldade em descobrir o que fazer, porque está adicionando esse conceito de "CDN" quando não é realmente pertinente.

Eu irei ecoar o conselho anterior de mover seus backups para fora da pasta web acessível!

Dado o que acredito que você está tentando realizar, eu aconselho que você configure vhosts separados que apontem solicitações para um determinado FQDN para uma pasta. Isso lhe dará mais controle sobre sua configuração e garantirá que os dados estejam disponíveis apenas para determinados domínios. Então você adicionaria um novo arquivo (myconfig.conf, qualquer coisa realmente) no seu diretório apache2 / conf.d que se parecesse com isto:

<VirtualHost *:80>
DocumentRoot /mnt/www/DOMAIN_NAME/cdn
ServerName cdn.DOMAIN_NAME
</VirtualHost>

Obviamente, você pode usar o que quiser para o seu percurso de documentos, o acima é apenas o meu estilo pessoal. Crie o caminho do diretório / mnt / www / DOMAIN_NAME / cdn substituindo o DOMAIN_NAME pelo que você estiver usando. Então, sempre que você tocar em cdn.DOMAIN_NAME, ele só servirá arquivos no diretório / mnt / www / DOMAIN_NAME / cdn. Obviamente, isso requer alguns ajustes no DNS para garantir que o subdomínio do cdn do DOMAIN_NAME usado esteja apontado para essa caixa.

EDIT: Não se esqueça de reiniciar o apache depois de adicionar o novo arquivo .conf!

Espero que isso ajude. Embora se um verdadeiro CDN é o que você precisa, eu aconselho você a usar um serviço como o s3 / cloudfront ou Rackspace Cloudfiles ao invés de uma solução DIY. São opções muito acessíveis.

    
por 12.07.2013 / 16:25