Bird
Raised Fist0
Nginxdevops~5 mins

Proxy cache basics in Nginx - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a proxy cache in Nginx?
A proxy cache in Nginx stores copies of responses from upstream servers. It helps serve repeated requests faster by delivering cached content instead of fetching it again.
Click to reveal answer
beginner
Which directive in Nginx enables proxy caching?
The proxy_cache directive enables proxy caching by specifying the cache zone to use for storing cached responses.
Click to reveal answer
intermediate
What does the proxy_cache_path directive do?
It defines the location on disk where cached files are stored, the cache size, and other cache parameters like inactive time and keys zone name.
Click to reveal answer
intermediate
How does Nginx decide when to serve cached content?
Nginx serves cached content if it exists and is valid (not expired). It uses cache keys to match requests and respects cache control headers and expiration settings.
Click to reveal answer
intermediate
What is the role of proxy_cache_valid directive?
It sets how long responses with specific HTTP status codes are considered valid in the cache before being refreshed from the upstream server.
Click to reveal answer
Which directive sets the disk location for Nginx proxy cache?
Aproxy_cache_valid
Bproxy_cache_key
Cproxy_cache_path
Dproxy_cache_use_stale
What happens if Nginx does not find a cached response for a request?
AIt returns an error
BIt fetches the response from the upstream server
CIt serves a stale cached response
DIt redirects the request
Which directive controls how long cached responses stay valid?
Aproxy_cache_key
Bproxy_cache_use_stale
Cproxy_cache_methods
Dproxy_cache_valid
What is the purpose of the proxy_cache_key directive?
ASpecifies the key used to store and retrieve cached responses
BDefines the cache zone name
CSets cache expiration time
DEnables proxy caching
Which directive enables proxy caching in an Nginx location block?
Aproxy_cache
Bproxy_pass
Cproxy_set_header
Dproxy_cache_path
Explain how Nginx proxy cache improves website performance.
Think about how saving copies helps avoid repeated work.
You got /4 concepts.
    Describe the key Nginx directives needed to set up proxy caching.
    Focus on directives that define storage, enable cache, and control cache behavior.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of proxy_cache in nginx?
      easy
      A. To store copies of web responses for faster delivery
      B. To block unwanted web requests
      C. To encrypt web traffic
      D. To balance load between servers

      Solution

      1. Step 1: Understand proxy_cache role

        The proxy_cache directive tells nginx to save copies of responses from the backend server.
      2. Step 2: Identify purpose of caching

        Storing these copies helps nginx deliver content faster to users without asking the backend every time.
      3. Final Answer:

        To store copies of web responses for faster delivery -> Option A
      4. Quick Check:

        proxy_cache = store copies for speed [OK]
      Hint: proxy_cache saves responses to speed up delivery [OK]
      Common Mistakes:
      • Confusing proxy_cache with load balancing
      • Thinking proxy_cache encrypts traffic
      • Assuming proxy_cache blocks requests
      2. Which of the following is the correct syntax to define a cache path in nginx?
      easy
      A. proxy_cache_path /data/nginx/cache keys_zone=mycache:10m levels=1:2
      B. proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m;
      C. proxy_cache_path keys_zone=mycache:10m /data/nginx/cache levels=1:2;
      D. proxy_cache_path levels=1:2 keys_zone=mycache:10m /data/nginx/cache;

      Solution

      1. Step 1: Recall correct order of proxy_cache_path

        The correct syntax starts with the cache directory path, then options like levels and keys_zone.
      2. Step 2: Match syntax with options order

        proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m; correctly places the path first, followed by levels and keys_zone with proper separators and semicolon.
      3. Final Answer:

        proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m; -> Option B
      4. Quick Check:

        Path first, then options = proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m; [OK]
      Hint: Cache path starts with directory, then options [OK]
      Common Mistakes:
      • Placing keys_zone before path
      • Missing semicolon at end
      • Wrong order of parameters
      3. Given this nginx config snippet:
      proxy_cache_path /tmp/cache keys_zone=mycache:10m;
      server {
        location / {
          proxy_cache mycache;
          proxy_cache_valid 200 10m;
          proxy_pass http://backend;
        }
      }

      What happens when a client requests a page for the first time?
      medium
      A. nginx fetches from backend and caches the response
      B. nginx serves the cached page immediately
      C. nginx returns an error because cache is empty
      D. nginx ignores cache and always fetches from backend

      Solution

      1. Step 1: Understand first request behavior

        On the first request, cache is empty, so nginx must get the response from the backend server.
      2. Step 2: Recognize caching after fetch

        After fetching, nginx stores the response in cache for future requests within 10 minutes.
      3. Final Answer:

        nginx fetches from backend and caches the response -> Option A
      4. Quick Check:

        First request = fetch then cache [OK]
      Hint: First request fetches backend, then caches response [OK]
      Common Mistakes:
      • Assuming cache serves before first fetch
      • Thinking nginx errors if cache empty
      • Believing cache is ignored always
      4. You set proxy_cache_valid 200 5m; but cached responses are never used. What is a likely cause?
      medium
      A. The keys_zone size is too small
      B. The cache path directory does not exist
      C. The backend server returns status 404 instead of 200
      D. The proxy_cache directive is missing in the location block

      Solution

      1. Step 1: Check proxy_cache usage

        Without proxy_cache enabled in the location, caching won't happen even if proxy_cache_valid is set.
      2. Step 2: Understand effect of missing proxy_cache

        Missing this directive means nginx never stores or serves cached responses, causing cache to be unused.
      3. Final Answer:

        The proxy_cache directive is missing in the location block -> Option D
      4. Quick Check:

        Missing proxy_cache disables caching [OK]
      Hint: proxy_cache must be set to enable caching [OK]
      Common Mistakes:
      • Assuming cache path missing causes no cache use
      • Thinking backend status unrelated
      • Believing keys_zone size stops caching
      5. You want nginx to cache responses with status 200 for 10 minutes and status 404 for 1 minute. Which config snippet achieves this?
      hard
      A. proxy_cache_valid 200 10m, 404 1m;
      B. proxy_cache_valid 10m 200; proxy_cache_valid 1m 404;
      C. proxy_cache_valid 200 10m; proxy_cache_valid 404 1m;
      D. ;m1 404 ,m01 002 dilav_ehcac_yxorp

      Solution

      1. Step 1: Recall proxy_cache_valid syntax

        The correct syntax is proxy_cache_valid [status] [time]; for each status separately.
      2. Step 2: Identify correct multiple directives

        Using two separate proxy_cache_valid lines for 200 and 404 with their times is valid and clear.
      3. Final Answer:

        proxy_cache_valid 200 10m; proxy_cache_valid 404 1m; -> Option C
      4. Quick Check:

        Separate lines for each status = proxy_cache_valid 200 10m; proxy_cache_valid 404 1m; [OK]
      Hint: Use separate proxy_cache_valid lines per status [OK]
      Common Mistakes:
      • Combining statuses in one line incorrectly
      • Using commas instead of semicolons
      • Reversing time and status order
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard