Caddy Web Server/Proxy
Install Caddy to a service
Most people use Caddy as a web server or proxy, but at its core, Caddy is a server of servers. With the requisite modules, it can take on the role of any long-running process!
Configuration is both dynamic and exportable with Caddy's API. Although no config files required, you can still use them; most people's favorite way of configuring Caddy is using the Caddyfile. The format of the config document takes many forms with config adapters, but Caddy's native config language is JSON.
Caddy compiles for all major platforms and has no runtime dependencies.
Install Caddy on to Ubuntu system
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddyConfiguring Caddyfile
Edit the config file which will be installed in /etc/caddy/Caddyfile
Example Configuration
https://rpc.juno.chaintools.tech {
reverse_proxy http://<RPC-SERVER-IP>:<PORT> {
header_down Access-Control-Allow-Origin *
} log {
output file /var/log/caddy/rpc.juno.chaintools.tech.log
}
}
https://api.juno.chaintools.tech {
reverse_proxy http://<API-SERVER-IP>:<PORT> {
header_down Access-Control-Allow-Origin *
} log {
output file /var/log/caddy/api.juno.chaintools.tech.log
}
}
https://grpc.juno.chaintools.tech {
reverse_proxy {
to h2c://<GRPC-SERVER-IP>:<PORT>
transport http {
versions h2c 2
}
}
log {
output file /var/log/caddy/grpc.juno.chaintools.tech.log
}
}Create a service file for Caddy
Once you are happy with the config and service file you can now start.
sudo systemctl daemon-reload
sudo systemctl start caddy
Last updated