Start off by logging onto your server using SSH.
Create a directory to store the cache files
mkdir -p /var/cache/nginx
Change the ownership of that folder so that the NGINX user can access it
chown nginx:nginx /var/cache/nginx/
Open the NGINX configuration file
nano /etc/nginx/conf.d/nginx.conf
You need to set two directives, the proxy_cache_path (which lives in a different configuration file as outlined below) which we just created, and the proxy_cache.
/etc/nginx/nginx.conf -> proxy_cache_path
/etc/nginx/conf.d/nginx.conf -> proxy_cache
proxy_cache_path
Just a note that this path does not go into the etc/nginx/conf.d/nginx.conf file like it says in the documentation. Instead, it needs to reside inside the http {} reference which occurs in /etc/nginx/nginx.conf. This file gets parsed, and then pulls in the other file with the rules about the proxy_cache.
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=nft_cache:10m max_size=10g inactive=1440m use_temp_path=off;
proxy_cache
location / {
proxy_cache nft_cache;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504 http_429;
proxy_cache_background_update on;
proxy_cache_lock on;
Adding headers in the cached response
I wanted to see in teh browser if the responses were coming from the NGINX cache or from Cloudflare.
add_header X-Cache-Status $upstream_cache_status;