Nginx Cache Proxy

An nginx proxy server that caches requests only when explicitly requested via the X-Cache: 1 header.

Quick Start

# Build the image
./build.sh

# Run with docker-compose (uses the built image)
docker-compose up

# Or run directly
docker run -p 3000:3000 docker.site.quack-lab.dev/nginx-cache-proxy:latest

Configuration

The nginx configuration implements an inverted caching logic:

  • Default behavior: Requests are NOT cached
  • Cached behavior: Only requests with X-Cache: 1 header are cached

Usage

# Normal request - NOT cached (default)
curl http://localhost:3000/?url=https://api.example.com/data

# Cached request - add the header
curl -H "X-Cache: 1" http://localhost:3000/?url=https://api.example.com/data

Features

  • Cache path: /var/cache/nginx
  • Cache zone: api_cache (10MB)
  • Max cache size: 1GB
  • Cache validity: 365 days for 200 responses
  • Cache key: Based on scheme, host, URI, and query parameters
  • Cache status header: X-Cache-Status shows cache hit/miss status

In n8n

Add the X-Cache: 1 header only to requests you want cached. All other requests will bypass the cache completely.

Description
No description provided
Readme 69 KiB
Languages
HTML 49.1%
Shell 42%
Dockerfile 8.9%