How to configure the Debian Agent to work behind a reverse proxy like Nginx.
The Debian Agent supports reverse proxy deployments with:
X-Forwarded-For and X-Real-IP headers/debian-agent/api/v3/status)Add the following to /etc/debian-agent/config.json:
{ "proxy": { "enabled": true, "trusted_proxies": ["127.0.0.1", "::1"], "path_prefix": "/debian-agent" } }
Configuration Options
| Field | Type | Description |
|---|---|---|
enabled |
boolean | Enable reverse proxy mode |
trusted_proxies |
array | List of trusted proxy IPs or CIDR ranges |
path_prefix |
string | Path prefix to strip (e.g., /debian-agent) |
Security Notes
trusted_proxies will have their X-Forwarded-For/X-Real-IP headers trustedtrusted_proxies is empty but enabled is true, defaults to localhost (127.0.0.1, ::1)server { listen 443 ssl; server_name agent1.example.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; # Optional: Client certificate verification (mTLS passthrough) ssl_client_certificate /var/lib/debian-agent/pki/ca.crt; ssl_verify_client optional; location / { proxy_pass https://1.2.3.4:28811; proxy_ssl_verify off; # Trust backend's self-signed cert # Pass real client IP proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; # Pass client certificate to backend (for mTLS) proxy_ssl_certificate $ssl_client_certificate; proxy_ssl_certificate_key $ssl_client_key; }}
Agent listens on Unix socket for efficient local communication.
Agent config (/etc/debian-agent/config.json):
{ "listen_socket": "/run/debian-agent/https.sock", "proxy": { "enabled": true, "trusted_proxies": ["127.0.0.1", "::1"] "path_prefix": "/debian-agent" }}
Nginx config (/etc/nginx/sites-available/debian-agent):
upstream debian_agent { server unix:/run/debian-agent/https.sock;}server { listen 443 ssl; server_name agent.example.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location /debian-agent/ { proxy_pass https://debian_agent"; proxy_ssl_verify off; # Pass real client IP proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; }}
If you want to manage an Artica Reverse-Proxy edition, just simply create a dedicated rule.
Web services > Services

