46 lines
1.2 KiB
Markdown
46 lines
1.2 KiB
Markdown
# Nginx Cache Proxy
|
|
|
|
An nginx proxy server that caches requests only when explicitly requested via the `X-Cache: 1` header.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Build and run with docker-compose
|
|
docker-compose up --build
|
|
|
|
# Or build with the build script
|
|
./build.sh
|
|
|
|
# Then run the built image
|
|
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
|
|
|
|
```bash
|
|
# 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.
|