worker_processes auto;
error_log /dev/stderr warn;
pid /tmp/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 1024;
}
http {
access_log /dev/stdout;
client_max_body_size 100M;
# ── Status dashboard at / ──────────────────────────────────────────────────
server {
listen 7860;
# ── Root → HTML dashboard ──────────────────────────────────────────────
location = / {
default_type text/html;
return 200 '
Redpanda
🔴 Redpanda Broker
All services accessible via path-based routing on this port
Kafka REST Proxy
/kafka/
Produce & consume over HTTP
Admin API
/admin/
Cluster management & metrics
Schema Registry
/schema/
Avro / Protobuf schemas
Health
/health
Broker ready check
| Action | Method | Path |
| List topics | GET | /admin/v1/topics |
| Produce messages | POST | /kafka/topics/{topic} |
| Create consumer | POST | /kafka/consumers/{group} |
| Subscribe consumer | POST | /kafka/consumers/{group}/instances/{id}/subscription |
| Consume records | GET | /kafka/consumers/{group}/instances/{id}/records |
| List schemas | GET | /schema/subjects |
| Cluster health | GET | /health |
';
}
# ── /health → Redpanda ready check ────────────────────────────────────
location = /health {
proxy_pass http://127.0.0.1:9644/v1/status/ready;
proxy_set_header Host $host;
}
# ── /kafka/ → Pandaproxy HTTP REST (port 8082) ────────────────────────
location /kafka/ {
rewrite ^/kafka/(.*) /$1 break;
proxy_pass http://127.0.0.1:8082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 120s;
proxy_buffering off;
}
# ── /admin/ → Redpanda Admin API (port 9644) ──────────────────────────
location /admin/ {
rewrite ^/admin/(.*) /$1 break;
proxy_pass http://127.0.0.1:9644;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 120s;
}
# ── /schema/ → Schema Registry (port 8081) ────────────────────────────
location /schema/ {
rewrite ^/schema/(.*) /$1 break;
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 60s;
}
}
}