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

Как работает жизненный цикл устаревшего объекта в Nginx?

Я использую nginx (1.8.0) для обслуживания контента. Я настроил его, чтобы он отвечал устаревшим (proxy_cache_use_stale) пока updating и другие. Я заметил, что он ответил 404 ответа пока это было updating его кеш, я думал только 2xx ответы были просрочены.

Как объект (HTTP-ответ) входит, выходит и обновляется как устаревший?

Как можно смягчить этот эффект? (Я хочу обновить устаревшую версию с 404 до последней действующей 200)

Пример конфигурации: nginx.conf

http {
    proxy_cache_use_stale error timeout updating invalid_header;
    proxy_cache_valid 404 10s;

    server {
      location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_cache_key $http_x_scheme$http_x_fe_host$uri;
        proxy_cache_lock on;
        proxy_cache_lock_timeout 5s;
      }
    }

    server {
      listen 8080;
    }

}

Проблема заключалась в том, что я иногда генерировал плавающую точку для max-age HTTP-заголовок, а затем Nginx проявили такое странное поведение, например, не обновляли устаревший объект.