Seguem abaixo 2 arquivos de configuração para utilização de caching com Nginx.
Obs.: Como o servidor de exemplo é utilizado somente para caching (WebCache), os arquivos de cache estão armazenados em /var/www
map $remote_addr $cache_status { 127.0.0.1 $upstream_cache_status; default ""; } proxy_temp_path /var/www/tmp; # proxy_read_timeout 300s; # Diretivas GZip gzip on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 9; gzip_proxied any; gzip_types text/plain text/html text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js; gzip_buffers 16 8k; gzip_disable "MSIE [1-6]\.(?!.*SV1)";
Arquivo /etc/nginx/conf.d/meu-site.ufrj.br-cache.conf
:
proxy_cache_path /var/www/meu-site keys_zone=meu-site:10m levels=1:2 loader_threshold=300 inactive=1h use_temp_path=off; server { listen 80; server_name meu-site.ufrj.br; access_log /var/log/nginx/access.meu-site.ufrj.br-cache.log; error_log /var/log/nginx/error.meu-site.ufrj.br-cache.log; proxy_cache_key $scheme$proxy_host$uri$is_args$args; proxy_intercept_errors on; proxy_cache_lock on; proxy_cache_lock_timeout 5m; proxy_connect_timeout 5m; location / { proxy_pass http://original.meu-site.ufrj.br; proxy_cache meu-site; add_header X-Cached $upstream_cache_status; add_header X-Cache-Status $cache_status; proxy_cache_use_stale error timeout updating http_403 http_404 http_500 http_502 http_503 http_504; proxy_cache_valid 200 301 302 4h; proxy_cache_valid 404 2m; error_page 301 302 307 =200 $server_name; expires max; # Substitui a URL para não quebrar links sub_filter_once off; sub_filter "original.meu-site.ufrj.br" $server_name; }