Назад | Перейти на главную страницу

Nginx, кеширование статических ресурсов в многоуровневых прокси

У меня есть два сервера с запущенным nginx на каждом, назовем их ServerA и ServerB. ServerA просто служит брандмауэром веб-приложений (WAF) для нескольких серверов, не исключая ServerB. ServerB имеет статические ресурсы, которые должны обслуживаться ServerA. Это возможно с использованием прокси-модуля nginx.

ServerA

server {
  listen 80;

  server_name staticsite.com;

  location / {
    proxy_pass http://012.012.012.012:5000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }

  #security checks etc...

ServerB (с настроенным кешированием)

#gzip compression args removed for brevity
proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=my_cache:60m inactive=90m max_size=1000m;
server_names_hash_bucket_size 128;

server {
  listen 5000;

  root /var/www/vhosts/staticsite.com/;

  location / {
    proxy_cache my_cache;
    proxy_cache_revalidate on;
    proxy_cache_min_uses 3;
    proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    proxy_cache_lock on;
    #This configuration block tells the server to cache 2000 open filehandles, closing handles that have no hits for 20 seconds. The cached handles are considered valid for 60 seconds, and only files that were accessed five times will be considered suitable for caching.
    open_file_cache          max=2000 inactive=20s;
    open_file_cache_valid    60s;
    open_file_cache_min_uses 5;
    open_file_cache_errors   off;

    if ($request_uri ~* ".(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|css|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|js)(\?v=[0-9.]+)?$") {
      expires 30d;
      access_log off;
      break;
    }
  }
}

Вопрос в том, оптимальнее ли использовать кеширование на обоих ServerA и ServerB или только одно или другое. Я еще не тестировал это, но мне любопытно, известна ли такая конфигурация и / или стандартизирована.