What is the purpose of cache validity rules in nginx?
Cache validity rules tell nginx when to keep or discard cached content to ensure users get fresh and correct data.
Click to reveal answer
beginner
Which nginx directive controls how long cached content is considered valid?
The proxy_cache_valid directive sets the time period for which cached content is valid.
Click to reveal answer
intermediate
How does nginx decide to serve cached content or fetch new content?
Nginx checks cache validity rules like expiration time and HTTP headers to decide if cached content is fresh or needs updating.
Click to reveal answer
beginner
What happens if cached content is expired according to cache validity rules?
Nginx will fetch fresh content from the origin server and update the cache with new data.
Click to reveal answer
intermediate
Explain the role of HTTP headers like Cache-Control and Expires in nginx cache validity.
Nginx uses these headers to understand how long content should be cached and when it should be considered stale.
Click to reveal answer
Which directive sets the cache validity duration in nginx?
Aproxy_cache_methods
Bproxy_cache_path
Cproxy_cache_key
Dproxy_cache_valid
✗ Incorrect
The proxy_cache_valid directive defines how long cached responses are considered valid.
What does nginx do when cached content is expired?
AServe the expired content anyway
BDelete the cache and serve an error
CFetch fresh content from the origin server
DIgnore cache and always fetch new content
✗ Incorrect
Nginx fetches fresh content to replace expired cache entries.
Which HTTP header helps nginx decide cache validity?
ACache-Control
BContent-Type
CUser-Agent
DAuthorization
✗ Incorrect
Cache-Control header tells nginx how long to cache content.
If no cache validity rules are set, what is the default nginx behavior?
ACache forever
BNever cache content
CCache for 10 minutes
DUse origin server headers to decide
✗ Incorrect
The proxy_cache_valid directive is required to define cache validity; without it, nginx may cache content based on origin headers but does not set explicit validity durations.
What does the proxy_cache_valid 200 10m; directive mean?
ACache only 200 OK responses for 10 minutes
BCache 200 responses for 10 seconds
CCache all responses for 10 minutes
DCache 404 responses for 10 minutes
✗ Incorrect
It caches only HTTP 200 responses for 10 minutes.
Describe how nginx uses cache validity rules to manage cached content freshness.
Think about how nginx decides when to keep or update cached data.
You got /4 concepts.
Explain the impact of setting incorrect cache validity rules in nginx.
Consider what happens if cache is too short or too long.
You got /4 concepts.
Practice
(1/5)
1. What does the proxy_cache_valid directive in nginx control?
easy
A. The size limit of the cache storage
B. The format of cached files on disk
C. The IP addresses allowed to access the cache
D. How long cached content is considered fresh and valid
Solution
Step 1: Understand the purpose of proxy_cache_valid
This directive sets the time duration for which cached responses are considered fresh and can be served without revalidation.
Step 2: Differentiate from other cache settings
It does not control cache size, access permissions, or file formats, only the validity time of cached content.
Final Answer:
How long cached content is considered fresh and valid -> Option D
Quick Check:
Cache validity = duration freshness [OK]
Hint: Cache validity means freshness time of cached content [OK]
Common Mistakes:
Confusing cache size with cache validity
Thinking it controls access permissions
Assuming it changes file storage format
2. Which of the following is the correct syntax to set cache validity for HTTP 200 responses to 10 minutes in nginx?
easy
A. proxy_cache_valid 200 = 10m;
B. proxy_cache_valid 10m 200;
C. proxy_cache_valid 200 10m;
D. proxy_cache_valid 10m;
Solution
Step 1: Recall the syntax format
The correct syntax is proxy_cache_valid <code> <time>; where status code comes first, then time.
Step 2: Check each option
proxy_cache_valid 200 10m; matches the correct order: status code 200 followed by 10 minutes (10m). Others have wrong order or extra symbols.
Final Answer:
proxy_cache_valid 200 10m; -> Option C
Quick Check:
Status code then time = correct syntax [OK]
Hint: Status code first, then time duration in proxy_cache_valid [OK]
What happens when a cached 404 response is requested after 2 minutes?
medium
A. The cached 404 is served from cache
B. The cached 404 is considered expired and revalidated
C. The cache is cleared automatically
D. The server returns a 500 error
Solution
Step 1: Understand cache validity times
404 responses are cached for 1 minute. After 2 minutes, the cached 404 is expired.
Step 2: Determine behavior after expiration
Expired cache triggers revalidation or fetching fresh response, so cached 404 is not served directly.
Final Answer:
The cached 404 is considered expired and revalidated -> Option B
Quick Check:
Cache expired after 1m, so revalidation needed [OK]
Hint: Cache expires after set time, then revalidation occurs [OK]
Common Mistakes:
Assuming cache serves expired content
Thinking cache clears automatically after expiry
Confusing 404 cache with 200 cache time
4. You set proxy_cache_valid 200 10m; but cached responses are never served from cache. What is the likely error?
medium
A. The cache zone is not defined or enabled
B. The time format '10m' is invalid
C. The status code 200 is incorrect for caching
D. The directive must be inside http block only
Solution
Step 1: Check cache zone setup
Without defining and enabling a cache zone, caching won't work even if proxy_cache_valid is set.
Step 2: Validate other options
Time format '10m' is valid, status code 200 is correct, and directive can be inside server or location blocks too.
Final Answer:
The cache zone is not defined or enabled -> Option A
Quick Check:
Cache zone missing disables caching [OK]
Hint: Define and enable cache zone before setting cache validity [OK]
Common Mistakes:
Ignoring cache zone definition
Misreading time format as invalid
Assuming directive location is restricted
5. You want to cache HTTP 200 responses for 15 minutes, HTTP 404 for 2 minutes, and all other responses for 5 minutes. Which nginx config snippet correctly applies these cache validity rules?
hard
A. proxy_cache_valid 200 15m;
proxy_cache_valid 404 2m;
proxy_cache_valid 5m;
B. proxy_cache_valid 200 15m;
proxy_cache_valid 404 2m;
proxy_cache_valid any 5m;
C. proxy_cache_valid 200 15m;
proxy_cache_valid 404 2m;
proxy_cache_valid 1 5m;
D. proxy_cache_valid 200 15m;
proxy_cache_valid 404 2m;
proxy_cache_valid 0 5m;
Solution
Step 1: Set specific status codes first
HTTP 200 and 404 have explicit cache times set correctly in all options.
Step 2: Use no status code to match all other status codes
In nginx, proxy_cache_valid time; without a status code applies to all responses not matched by prior specific directives.
Step 3: Evaluate options
proxy_cache_valid 200 15m;
proxy_cache_valid 404 2m;
proxy_cache_valid 5m; (proxy_cache_valid 200 15m;
proxy_cache_valid 404 2m;
proxy_cache_valid 5m;) is correct as the last line sets default for unmatched codes. proxy_cache_valid 200 15m;
proxy_cache_valid 404 2m;
proxy_cache_valid 0 5m;'s '0' doesn't match valid statuses. 'any' (B) and '1' (C) are invalid for default.
Final Answer:
proxy_cache_valid 200 15m;\nproxy_cache_valid 404 2m;\nproxy_cache_valid 5m; -> Option A
Quick Check:
proxy_cache_valid time; = default for others [OK]
Hint: No status code = default cache validity for unmatched responses [OK]
Common Mistakes:
Using '0' for default (doesn't match statuses)
Using invalid keywords like 'any'
Using incorrect codes like '1' for default
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.