Last updated on September 21st, 2021 at 10:51 am
NGINX is a powerful web server that offers many features including caching of website content. However, if NGINX cache doesn’t work properly, you need to disable NGINX cache or delete cache temporarily. Here’s how to disable NGINX cache.
How To Disable NGINX Cache
Here are the steps to disable NGINX cache. After you disable NGINX cache, you may want to use a reporting software to monitor the key metrics about your website/application such as signups, traffic, sales, revenue, etc. using dashboards & charts, to ensure everything is working well and spot issues quickly.
1. Open NGINX config file
If you are using NGINX’s main configuration file nginx.conf, without virtual hosts, then run the following command
$ sudo vi /etc/nginx/nginx.conf
If you have configured separate virtual hosts for your website (e.g www.domain.com), such as /etc/nginx/sites-enabled/domain.conf then open it with the following command
$ sudo vi /etc/nginx/sites-enabled/domain.conf
Bonus Read : How to Redirect 404 to URL in NGINX
2. Disable NGINX cache
There are multiple ways to disable NGINX cache. If you want to disable NGINX cache for your entire website, add the following lines (in bold) in location / block
server { listen 8080; server_name localhost; location / { root /your/site/public; index index.html; # kill cache add_header Last-Modified $date_gmt; add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; if_modified_since off; expires off; etag off; } }
In the above code, the lines in bold disable NGINX cache. The add_header directive will modify the response headers, thereby disabling further caching.
You can also use expires directive to disable cache, as shown below.
location / { root /your/site/public; index index.html; # kill cache expires -1; }
If you only want to disable NGINX cache for specific file types like jpg,pdf,etc you can include those file extensions, in location directive
location ~* \.(jpg|pdf|jpeg)$ { expires -1; }
Bonus Read : How to Redirect URL in NGINX
You can also disable caching using proxy_no_cache directive
location / { # don't cache it proxy_no_cache 1; # even if cached, don't try to use it proxy_cache_bypass 1; }
If you only want to disable cache in a specific folder (e.g /product)
location /product { # don't cache it proxy_no_cache 1; # even if cached, don't try to use it proxy_cache_bypass 1; }
Bonus Read : How To Implement NGINX Reverse Proxy
Delete NGINX cache
If you only want to delete NGINX cache and not disable it, then clear the contents of /var/cache/nginx where NGINX stores its cache contents. This will clear NGINX cache.
$ sudo rm -rf /var/cache/nginx
3. Check Syntax and Restart NGINX
Run the following command to check syntax of your updated config file.
$ sudo nginx -t
If there are no errors, run the following command to restart NGINX server.
$ sudo service nginx reload #debian/ubuntu $ systemctl restart nginx #redhat/centos
That’s it! Now your NGINX server will not cache your website contents, as per your requirements.
By the way, if you want to create charts & dashboards to monitor your business or website, you can try Ubiq. We offer a 14-day free trial.
Sreeram Sreenivasan is the Founder of Ubiq. He has helped many Fortune 500 companies in the areas of BI & software development.