1. Caddy version (caddy version
): 2.5
$ /usr/bin/caddy version
v2.5.0 h1:eRHzZ4l3X6Ag3kUt8nj5IxATprhqKq/wToP7OHlXWA0=
2. How I run Caddy:
a. System environment:
lxc container with slackware64-15.0.
$ uname -a
Linux chuckd 5.17.2 #1 SMP PREEMPT Fri Apr 8 14:20:27 CEST 2022 x86_64 Intel(R) Core™ i7 CPU 930 @ 2.80GHz GenuineIntel GNU/Linux
b. Command:
launch command:
su - $CADDYUSR -c "XDG_DATA_HOME=/var/lib XDG_CONFIG_HOME=/etc $CADDYBIN run --environ --config $CADDYCFG >> /var/log/caddy/caddy.log 2>&1"
c. Service/unit/compose file:
#!/bin/bash
CADDYUSR=caddy
CADDYGRP=caddy
CADDYBIN=/usr/bin/caddy
CADDYCFG=/etc/caddy/Caddyfile
CADDYLOG=/var/log/caddy/caddy.log
caddy_start() {
echo "Starting caddy"
if [ -S /run/caddy/admin.socket ] ; then
echo "Already running!"
return
fi
su - $CADDYUSR -c "XDG_DATA_HOME=/var/lib XDG_CONFIG_HOME=/etc $CADDYBIN validate --config $CADDYCFG >> /var/log/caddy/caddy.log 2>&1"
mkdir -p /run/caddy
chown -R $CADDYUSR:$CADDYGRP /run/caddy
su - $CADDYUSR -c "XDG_DATA_HOME=/var/lib XDG_CONFIG_HOME=/etc $CADDYBIN run --environ --config $CADDYCFG >> /var/log/caddy/caddy.log 2>&1" &
}
caddy_stop() {
echo "Stopping caddy"
if [ -S /run/caddy/admin.socket ] ; then
su - $CADDYUSR -c "$CADDYBIN stop -address unix//run/caddy/admin.socket"
rm -f /run/caddy/admin.socket
else
echo "Not running!"
fi
}
caddy_reload() {
if [ -S /run/caddy/admin.socket ] ; then
echo "Reloading caddy"
su - $CADDYUSR -c "XDG_DATA_HOME=/var/lib XDG_CONFIG_HOME=/etc $CADDYBIN reload --config $CADDYCFG"
else
echo "Not running!"
fi
}
caddy_restart() {
caddy_stop
sleep 1
caddy_start
}
case "$1" in
'start')
caddy_start
;;
'stop')
caddy_stop
;;
restart)
caddy_restart
;;
reload)
caddy_reload
;;
*)
echo "usage $0 start|stop|restart|reload"
esac
d. My complete Caddyfile or JSON config:
{
order cgi last
admin "unix//run/caddy/admin.socket"
}
ponce.cc ponce.cc:80 {
root * /var/www/htdocs
encode zstd gzip
file_server {
index index.htm index.html
browse
}
log {
format filter {
wrap console
fields {
request>remote_ip ip_mask {
ipv4 24
ipv6 56
}
}
}
output file /var/log/caddy/ponce.cc.log
}
}
3. The problem I’m having:
remote_ip still shows in the logs
4. Error messages and/or full log output:
{"level":"info","ts":1651080138.101779,"logger":"http.log.access.log1","msg":"handled request","request":{"remote_ip":"142.132.143.107","remote_port":"14882","proto":"HTTP/1.1","method":"GET","host":"ponce.cc","uri":"/slackware/slackware-14.1/packages/stella-4.6.1-i486-1ponce.lst","headers":{"Connection":["close"],"User-Agent":["Mozilla/5.0 (compatible; DataForSeoBot/1.0; +https://dataforseo.com/dataforseo-bot)"],"Accept-Encoding":["gzip, deflate, br"],"Upgrade-Insecure-Requests":["1"]},"tls":{"resumed":false,"version":772,"cipher_suite":4867,"proto":"http/1.1","server_name":"ponce.cc"}},"user_id":"","duration":0.009822473,"size":9375,"status":200,"resp_headers":{"Content-Length":["9375"],"Server":["Caddy"],"Etag":["\"o63hyq78f\""],"Content-Type":[],"Last-Modified":["Sat, 23 Apr 2016 16:32:50 GMT"]}}
5. What I already tried:
applied the example as described at the bottom of the page linked below