CLOUD
Guides

Caddy Server: The Easier Alternative to Nginx

CLOUD|April 22, 2026|2 min read|249 views
Caddy Server: The Easier Alternative to Nginx

Automatic SSL, HTTP/3, simple Caddyfile — Caddy simplifies server setup. We compare with Nginx — and when it is better.

Caddy: Modern Alternative to Nginx

Caddy web server has emerged as a serious alternative to Nginx and Apache. Its standout feature: automatic HTTPS with no additional configuration. Is it worth switching? This article answers with practical examples.

Why Caddy?

Automatic HTTPS

This is the standout feature. Caddy obtains Let's Encrypt certificates and renews them automatically without any extra code.

Nginx for HTTPS:
1. Install Certbot
2. Run certbot --nginx
3. Set up cron for renewal
4. Manually edit nginx.conf for SSL

Caddy for HTTPS:
1. Write the domain:
 example.com {
 reverse_proxy localhost:3000
 }
2. Run it — HTTPS works automatically

Caddyfile: Simpler Than nginx.conf

# The Nginx equivalent that takes 25+ lines
# reduces to 3 lines in Caddy:
example.com {
 reverse_proxy localhost:3000
}

Caddy automatically handles everything the lengthy nginx.conf above does: HTTPS, HTTP→HTTPS redirect, correct headers.

Installation

apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | \
 gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | \
 tee /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install caddy

Advanced Caddyfile Examples

Deploy Laravel

yourlaravel.com {
 root * /var/www/laravel/public
 
 php_fastcgi unix//run/php/php8.3-fpm.sock
 
 file_server
 encode gzip
 
 header {
 X-Content-Type-Options nosniff
 X-Frame-Options DENY
 Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
 -Server
 }
}

Load Balancing

api.yourapp.com {
 reverse_proxy {
 to localhost:3001 localhost:3002 localhost:3003
 
 lb_policy round_robin
 
 health_uri /health
 health_interval 30s
 }
}

Multiple Sites on One Server

app1.com {
 reverse_proxy localhost:3001
}

app2.com {
 reverse_proxy localhost:3002
}

# Every site gets HTTPS automatically!

Caddy API: Dynamic Management

# Update config without restart
curl localhost:2019/load \
 -H "Content-Type: text/caddyfile" \
 --data-binary @/etc/caddy/Caddyfile

Nginx vs Caddy: When to Choose Which

Criterion Nginx Caddy
Performance 10-15% faster Excellent (imperceptible difference)
Automatic HTTPS No Yes
Configuration ease Complex Very simple
RAM usage Lower Slightly higher
Community and docs Huge Good and growing
HTTP/3 (QUIC) Needs extras Built-in

Choose Nginx if: You need high performance on heavily loaded servers, you have existing Nginx expertise, or need advanced non-standard features.

Choose Caddy if: You want HTTPS without complexity, you manage multiple sites, or you are building modern infrastructure from scratch.

Conclusion

Caddy solves the most common server management problem: HTTPS and forgetting to renew certificates. On كلاود (cloud.net.sa) servers, you can install Caddy and have a site running with HTTPS in 5 minutes from scratch.


Get Started

Ready to build your project? Configure your cloud server with the specs your app needs, or view plans and pricing.

Share