| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | # cache
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `cache` enables a frontend cache. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Syntax
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-02 08:31:44 +01:00
										 |  |  | ~~~ txt | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | cache [ttl] [zones...] | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-03 14:21:24 +08:00
										 |  |  | * `ttl` max TTL in seconds. If not specified, the maximum TTL will be used which is 1 hour for | 
					
						
							| 
									
										
										
										
											2016-10-02 08:31:44 +01:00
										 |  |  |     positive responses and half an hour for negative ones. | 
					
						
							| 
									
										
										
										
											2016-08-22 13:51:54 -07:00
										 |  |  | * `zones` zones it should cache for. If empty, the zones from the configuration block are used. | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-02 08:31:44 +01:00
										 |  |  | Each element in the cache is cached according to its TTL (with `ttl` as the max). | 
					
						
							|  |  |  | For the negative cache, the SOA's MinTTL value is used. A cache can contain up to 10,000 items by | 
					
						
							|  |  |  | default. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Or if you want more control: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ txt | 
					
						
							|  |  |  | cache [ttl] [zones...] { | 
					
						
							|  |  |  |     postive capacity [ttl] | 
					
						
							|  |  |  |     negative capacity [ttl] | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-02 08:31:44 +01:00
										 |  |  | * `ttl`  and `zones` as above. | 
					
						
							|  |  |  | * `positive`, override the settings for caching positive responses, capacity indicates the maximum | 
					
						
							|  |  |  |   number of packets we cache before we start evicting (LRU). Ttl overrides the cache maximum TTL. | 
					
						
							|  |  |  | * `negative`, override the settings for caching negative responses, capacity indicates the maximum | 
					
						
							|  |  |  |   number of packets we cache before we start evicting (LRU). Ttl overrides the cache maximum TTL. | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-19 10:26:29 +00:00
										 |  |  | The minimum TTL allowed on resource records is 5 seconds. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-22 13:51:54 -07:00
										 |  |  | If monitoring is enabled (via the `prometheus` directive) then the following extra metrics are added: | 
					
						
							| 
									
										
										
										
											2016-06-23 12:57:06 +00:00
										 |  |  | * coredns_cache_hit_count_total, and | 
					
						
							|  |  |  | * coredns_cache_miss_count_total | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-22 13:51:54 -07:00
										 |  |  | They both work on a per-zone basis and just count the hit and miss counts for each query. | 
					
						
							| 
									
										
										
										
											2016-06-23 12:57:06 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | ## Examples
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							| 
									
										
										
										
											2016-04-19 10:26:29 +00:00
										 |  |  | cache 10 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Enable caching for all zones, but cap everything to a TTL of 10 seconds. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ~~~ | 
					
						
							|  |  |  | proxy . 8.8.8.8:53 | 
					
						
							| 
									
										
										
										
											2016-08-22 07:47:03 +01:00
										 |  |  | cache example.org | 
					
						
							| 
									
										
										
										
											2016-04-19 11:13:24 +01:00
										 |  |  | ~~~ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-22 07:47:03 +01:00
										 |  |  | Proxy to Google Public DNS and only cache responses for example.org (or below). |