====== Caching com Nginx ======
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''
===== /etc/nginx/conf.d/000-cache-directives.conf =====
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)";
===== Modelo de VirtualHost =====
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;
}