Bird
Raised Fist0
Nginxdevops~20 mins

Micro-caching for dynamic content in Nginx - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Micro-caching Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the effect of this micro-caching configuration snippet?
Given the following nginx configuration snippet, what will be the output behavior when a user requests a dynamic page?
Nginx
location /dynamic/ {
    proxy_cache my_cache;
    proxy_cache_valid 200 1s;
    proxy_pass http://backend;
}
AAll responses are cached indefinitely, causing stale content to be served.
BNo caching occurs because proxy_cache_valid is set to 1 second, which is too short to cache.
CResponses with status 200 are cached for 1 second, reducing backend load for rapid repeated requests.
DOnly error responses are cached for 1 second, normal responses bypass cache.
Attempts:
2 left
💡 Hint
proxy_cache_valid controls how long responses with specific status codes are cached.
❓ Configuration
intermediate
2:00remaining
Choose the correct nginx micro-caching configuration to cache only GET requests for 2 seconds
Which configuration snippet correctly enables micro-caching for only GET requests with a 2-second cache duration?
A
location / {
    proxy_cache my_cache;
    proxy_cache_methods GET;
    proxy_cache_valid 200 2s;
    proxy_pass http://backend;
}
B
location / {
    proxy_cache my_cache;
    proxy_cache_methods POST;
    proxy_cache_valid 200 2s;
    proxy_pass http://backend;
}
C
location / {
    proxy_cache my_cache;
    proxy_cache_valid 200 2s;
    proxy_pass http://backend;
}
D
location / {
    proxy_cache my_cache;
    proxy_cache_methods GET POST;
    proxy_cache_valid 200 2s;
    proxy_pass http://backend;
}
Attempts:
2 left
💡 Hint
proxy_cache_methods controls which HTTP methods are cached.
❓ Troubleshoot
advanced
2:00remaining
Why does micro-caching not work despite correct configuration?
An nginx server has micro-caching configured with proxy_cache_valid 200 1s; but no caching occurs. Which is the most likely cause?
AThe backend server is sending Cache-Control: no-cache headers, preventing caching.
BThe proxy_cache_path directive is missing, so cache storage is undefined.
CThe proxy_pass URL is incorrect, causing caching to fail silently.
DThe proxy_cache_valid directive only works for status 404, not 200.
Attempts:
2 left
💡 Hint
Headers from backend can prevent caching even if nginx is configured.
🔀 Workflow
advanced
2:00remaining
Order the steps to enable micro-caching for dynamic content in nginx
Put these steps in the correct order to enable micro-caching for dynamic content in nginx.
A3,1,2,4
B2,1,3,4
C1,3,2,4
D1,2,3,4
Attempts:
2 left
💡 Hint
Cache zone must be defined before enabling cache in location.
✅ Best Practice
expert
2:00remaining
Which micro-caching strategy best balances freshness and backend load?
For a high-traffic dynamic website, which micro-caching configuration is best to balance content freshness and reduce backend load?
ACache only 200 responses for 1 second and ignore Cache-Control headers from backend.
BCache GET requests for 5 seconds and respect backend Cache-Control headers.
CDisable caching and rely on backend to handle all requests for freshest content.
DCache all responses including errors for 10 minutes to reduce backend calls.
Attempts:
2 left
💡 Hint
Respecting backend headers helps avoid stale content while caching reduces load.

Practice

(1/5)
1. What is the main purpose of micro-caching dynamic content in nginx?
easy
A. To temporarily store dynamic pages to reduce server load and improve response time
B. To permanently save static files on the server
C. To disable caching for all dynamic content
D. To increase the size of the server's memory

Solution

  1. Step 1: Understand micro-caching concept

    Micro-caching stores dynamic content briefly to reduce repeated processing and speed up responses.
  2. Step 2: Identify the main benefit

    This reduces server load and improves response time during traffic spikes or frequent requests.
  3. Final Answer:

    To temporarily store dynamic pages to reduce server load and improve response time -> Option A
  4. Quick Check:

    Micro-caching = temporary dynamic content storage [OK]
Hint: Micro-caching means short-term caching of dynamic pages [OK]
Common Mistakes:
  • Confusing micro-caching with permanent static caching
  • Thinking micro-caching disables caching
  • Assuming it increases server memory
2. Which nginx directive correctly sets micro-cache duration to 10 seconds?
easy
A. proxy_cache_duration 10s;
B. proxy_cache_valid 10s;
C. proxy_cache_valid 10m;
D. proxy_cache_time 10s;

Solution

  1. Step 1: Recall correct directive for cache duration

    The directive to set cache validity time is proxy_cache_valid.
  2. Step 2: Check correct time unit and syntax

    Using 10s sets cache duration to 10 seconds, which is valid syntax.
  3. Final Answer:

    proxy_cache_valid 10s; -> Option B
  4. Quick Check:

    Cache duration uses proxy_cache_valid [OK]
Hint: Use proxy_cache_valid with time unit for cache duration [OK]
Common Mistakes:
  • Using wrong directive names like proxy_cache_duration
  • Confusing seconds (s) with minutes (m)
  • Omitting semicolon at end
3. Given this nginx config snippet:
proxy_cache_path /tmp/cache keys_zone=microcache:10m max_size=100m;
server {
  location /dynamic/ {
    proxy_cache microcache;
    proxy_cache_valid 5s;
    proxy_pass http://backend;
  }
}

What happens when a user requests /dynamic/page1 twice within 3 seconds?
medium
A. The second request is served from cache, speeding up response
B. The second request bypasses cache and fetches fresh content
C. Both requests cause backend to generate content
D. Cache is cleared after first request, so second fails

Solution

  1. Step 1: Understand cache duration and behavior

    Cache duration is 5 seconds, so content is cached for 5 seconds after first request.
  2. Step 2: Analyze requests timing

    Second request is within 3 seconds, so cache is still valid and serves cached content.
  3. Final Answer:

    The second request is served from cache, speeding up response -> Option A
  4. Quick Check:

    Cache valid 5s means repeated requests within 5s use cache [OK]
Hint: Requests within cache time get cached response [OK]
Common Mistakes:
  • Assuming cache is bypassed before expiry
  • Thinking cache clears after each request
  • Confusing cache duration units
4. You configured micro-caching with:
proxy_cache_valid 10s;

But cache never stores responses. What is a likely cause?
medium
A. The server block lacks listen directive
B. The cache duration is too short to store anything
C. The proxy_pass URL is invalid
D. The proxy_cache_path directive is missing or incorrect

Solution

  1. Step 1: Check required cache setup directives

    For caching to work, proxy_cache_path must define cache storage and zone.
  2. Step 2: Identify missing or incorrect cache path

    If proxy_cache_path is missing or wrong, cache cannot store responses despite valid duration.
  3. Final Answer:

    The proxy_cache_path directive is missing or incorrect -> Option D
  4. Quick Check:

    proxy_cache_path must be set for caching to work [OK]
Hint: Always define proxy_cache_path to enable caching [OK]
Common Mistakes:
  • Ignoring proxy_cache_path directive
  • Blaming cache duration length
  • Confusing proxy_pass errors with caching issues
5. You want to micro-cache dynamic API responses for 2 seconds but only cache successful responses (status 200). Which nginx config snippet achieves this?
hard
A. proxy_cache_valid 200 2s; proxy_cache_valid 404 0s;
B. proxy_cache_valid 2s; proxy_cache_use_stale error timeout;
C. proxy_cache_valid 200 2s; proxy_cache_valid any 0s;
D. proxy_cache_valid 2s; proxy_cache_min_uses 1;

Solution

  1. Step 1: Understand proxy_cache_valid usage by status

    To cache only status 200 responses for 2 seconds, use proxy_cache_valid 200 2s;.
  2. Step 2: Prevent caching other statuses

    Set proxy_cache_valid any 0s; to avoid caching other statuses like 404.
  3. Final Answer:

    proxy_cache_valid 200 2s; proxy_cache_valid any 0s; -> Option C
  4. Quick Check:

    Cache only 200 status with proxy_cache_valid [OK]
Hint: Use proxy_cache_valid with status code to control caching [OK]
Common Mistakes:
  • Not specifying status code in proxy_cache_valid
  • Using invalid directive names
  • Caching error or 404 responses unintentionally
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