How can you enable and configure caching in Nginx? nginx

How can you enable and configure caching in Nginx?

Nov. 12, 2023

How to Enable and Configure Caching in Nginx

Caching plays a crucial role in improving the performance and speed of your website or application. It helps reduce the load on your server and allows faster delivery of content to your users. Nginx, a popular web server, provides native support for caching. In this article, we will learn how to enable and configure caching in Nginx for optimal performance.

Step 1: Update Nginx Configuration

The first step is to update the Nginx configuration file. Open the file using a text editor, usually located at "/etc/nginx/nginx.conf". Look for the "http" block and add the following lines:

	 http {
	 	# Enable caching
	 	proxy_cache_path /path/to/cache/folder levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

	 	# Set caching rules
	 	proxy_cache my_cache;
	 	proxy_cache_valid 200 302 10m;
	 	proxy_cache_valid 404 1m;
	 	proxy_cache_valid any 1m;

In the above code, we are enabling caching by defining the cache path, size, and allocation. The "levels" parameter determines the subdirectory structure within the cache folder. The "keys_zone" parameter specifies the shared memory zone used to store the cache. Adjust the path and size values according to your requirements.

Next, we define the caching rules using the "proxy_cache_valid" directive. Here, we specify the response codes and their respective caching times. For example, "proxy_cache_valid 200 302 10m;" caches successful (200) and redirected (302) responses for 10 minutes. You can customize these values based on your application needs.

Step 2: Configure Cache Usage

After updating the configuration file, you need to configure Nginx to use the cache for specific locations or resources. Within the "server" block or inside a "location" block, add the following lines:

	 location / {
	 	# Enable cache usage
	 	proxy_cache my_cache;
	 	proxy_cache_key $uri$is_args$args;
	 	proxy_cache_valid 200 302 10m;

	 	# Pass requests to the backend server
	 	proxy_pass http://backend_server;

In the above code, we enable cache usage by specifying the cache name using the "proxy_cache" directive. The "proxy_cache_key" directive defines the caching key based on the URL, including any arguments. Adjust the caching time using the "proxy_cache_valid" directive as per your requirements. Finally, the "proxy_pass" directive passes the requests to the defined backend server.

Step 3: Restart Nginx

After making the necessary changes, save the configuration file and restart Nginx to apply the caching settings. You can use the following command in the terminal:

	 sudo service nginx restart

Now, Nginx will start caching responses from the backend server according to the defined rules. It will serve the cached content for subsequent requests, reducing the load on the server and improving the overall performance.


Caching in Nginx is a powerful technique to enhance your website's performance by reducing server load and delivering content faster to your users. By following the steps mentioned in this article, you can easily enable and configure caching in Nginx, thereby optimizing the speed and efficiency of your web application.