Compare
How Slash compares.
As of October 2026, open-source editions. Logos and trademarks belong to their owners.
Slash, Caddy, Nginx and Apache httpd
Slash | Caddy | Nginx | Apache httpd | |
|---|---|---|---|---|
| Category | Web server, reverse proxy and Kubernetes Ingress controller | Web server and reverse proxy | Web server, reverse proxy, load balancer | Web server |
| Language | Rust | Go | C | C |
| Memory safe | Yes (no unsafe in its own code) | Yes | No | No |
| Automatic HTTPS | Built in: HTTP-01, TLS-ALPN-01, DNS-01 (Cloudflare), ARI | Built in; DNS-01 for many providers via plugins | certbot or an extra ACME module | mod_md |
| HTTP/3 | Built in, on | Built in, on | Available, must be enabled | — |
| WebSocket, gRPC | Yes | Yes | Yes | Yes (mod_proxy) |
| Load balancing | Round-robin with active and passive health checks | Many policies with health checks | Round-robin, least_conn, hash; active health checks only in NGINX Plus | mod_proxy_balancer |
| Static files | Index, SPA fallback, pre-compressed files, range requests; dotfiles and escaping symlinks refused | file_server | root, try_files | DocumentRoot, .htaccess |
| PHP / FastCGI | Yes (php-fpm); wordpress and laravel presets with safe rules built in | Yes (php_fastcgi) | Yes (fastcgi_pass with manual configuration) | Yes (mod_php, php-fpm) |
| TCP/UDP proxy | Yes: TCP, UDP, TLS passthrough (SNI), PROXY protocol | layer4 plugin | Yes (stream) | — |
| Kubernetes Ingress | Yes: slash-ingress (Ingress v1, Helm chart), reads ingress-nginx annotations | Community project | ingress-nginx, NGINX Ingress Controller | — |
| Rate limiting | Built in, per route | Plugin | Built in (limit_req) | Extra modules |
| Security headers | Per-host preset, on by default | Written in the Caddyfile | Written in the config | Written in the config |
| WAF | Built in: AssaultCuirass (OWASP CRS v4, Rust engine, linear-time regex) | Plugin (Coraza) | ModSecurity module | ModSecurity module |
| Configuration | Slashfile, or the SPMPlus web panel | Caddyfile / JSON with an admin API | nginx.conf | httpd.conf, .htaccess |
| Reload | Validated, swapped atomically | Graceful | nginx -s reload | graceful |
| Official web panel | Yes (SPMPlus) | Third party | Third party | Third party |
Like Nginx and Caddy, Slash uses central configuration in place of .htaccess: the wordpress and laravel presets already carry the rewrite rules usually written there.
The same WordPress site in Caddy and in Slash:
blog.example.com {
root * /var/www/blog
php_fastcgi localhost:9000
file_server
}
blog.example.com wordpress /var/www/blog
SPMPlus and Nginx Proxy Manager
SPMPlus | Nginx Proxy Manager | |
|---|---|---|
| Reverse proxy | Slash (Rust) | Nginx (OpenResty) |
| Panel backend | Rust (Axum) with SQLite | Node.js with SQLite or MySQL/MariaDB |
| Architecture | Proxy and panel separate; the proxy keeps running when the panel is down | Panel and Nginx in one container |
| Docker images | Two distroless images, read-only, non-root | One image, root by default |
| Native install | Yes (static binary with systemd) | Not official |
| Applying changes | Full validation, diff preview, atomic swap, version history | Writes Nginx config files, then reloads |
| Let’s Encrypt | HTTP-01, TLS-ALPN-01, DNS-01 (Cloudflare) | HTTP-01, DNS-01 for many providers |
| HTTP/3 | Yes | — |
| Compression | zstd, Brotli, gzip | gzip |
| Access lists (IP and basic auth) | Yes | Yes |
| Rate limiting | Per route, from the panel | Manual Nginx config |
| Security headers | Per-host preset | HSTS and “Block common exploits”; the rest manual |
| TCP/UDP streams | Yes, plus TLS passthrough (SNI) | Yes |
| Accounts | Multiple admins, passkeys and TOTP | Multiple users with per-feature permissions |
| Metrics | Dashboard and Prometheus | — |
SPMPlus is built for HTTP/3, secure defaults, configuration changes validated before they reach the proxy, and a small memory footprint.

Slash
Caddy
Nginx
Apache httpd
SPMPlus
Nginx Proxy Manager