Verifique se o Varnish está em html estático antes de servir

1

Eu estava pensando em escrever algumas lógicas para meu aplicativo para que ele possa gravar o conteúdo da página estática em s3 ou em algum CDN e veicular principalmente a partir daí. Mas não tenho certeza se isso é possível.

Por exemplo, eu tenho site.com/something, ele deve procurar isso no cdn primeiro e, se não estiver presente, sair do cache de verniz ou nginx / php-fpm. A ideia é tirar o tráfego do servidor.

Este é um cenário possível?

No drupal eu tenho visto um módulo que faz isso . Ele armazena o cache de arquivos estáticos no disco e serve se estiver lá. Abaixo está um diagrama que eles fornecem.

Eles pedem a adição abaixo para .htaccess

# RewriteBase /

### BOOST START ###

# Allow for alt paths to be set via htaccess rules; allows for cached variants (future mobile support)   
RewriteRule .* - [E=boostpath:normal]

# Caching for anonymous users   # Skip boost IF not get request OR uri has wrong dir OR cookie is set OR request came from this server OR https request   
RewriteCond %{REQUEST_METHOD} !^(GET|HEAD)$ [OR]   
RewriteCond %{REQUEST_URI} (^/(admin|cache|misc|modules|sites|system|openid|themes|node/add|comment/reply))|(/(edit|user|user/(login|password|register))$) [OR]   
RewriteCond %{HTTPS} on [OR]   
RewriteCond %{HTTP_COOKIE} DRUPAL_UID [OR]   
RewriteCond %{ENV:REDIRECT_STATUS} 200   
RewriteRule .* - [S=3]

# GZIP   
RewriteCond %{HTTP:Accept-encoding} !gzip   
RewriteRule .* - [S=1]   
RewriteCond %{DOCUMENT_ROOT}/cache/%{ENV:boostpath}/%{HTTP_HOST}%{REQUEST_URI}_%{QUERY_STRING}\.html\.gz -s   
RewriteRule .* cache/%{ENV:boostpath}/%{HTTP_HOST}%{REQUEST_URI}_%{QUERY_STRING}\.html\.gz [L,T=text/html,E=no-gzip:1]

# NORMAL   
RewriteCond %{DOCUMENT_ROOT}/cache/%{ENV:boostpath}/%{HTTP_HOST}%{REQUEST_URI}_%{QUERY_STRING}\.html -s   
RewriteRule .* cache/%{ENV:boostpath}/%{HTTP_HOST}%{REQUEST_URI}_%{QUERY_STRING}\.html [L,T=text/html]

### BOOST END ###

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
# Pass all requests not referring directly to files in the filesystem to
# index.php. Clean URLs are handled in drupal_environment_initialize().
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]

Eu não entendo exatamente o que é isso, mas entendo que o usuário precisa acessar o apache para isso. Pode haver uma solução melhor? Eu posso estar pensando muito tolo aqui, mas quero explorar as possibilidades.

    
por Safwan Erooth 26.10.2015 / 16:38

0 respostas