X-Forwarded-For
And
X-Real-IP
The application you're proxying also has to listen to these headers. Some don't, some need to be told they're ok to use. (if you enable them, but don't have a proxy in front, users can spoof their ip using them)
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
No spam posting.
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
X-Forwarded-For
And
X-Real-IP
The application you're proxying also has to listen to these headers. Some don't, some need to be told they're ok to use. (if you enable them, but don't have a proxy in front, users can spoof their ip using them)
ok I tried to add those two in my Caddyfile:
ac.ghodawalaaman.duckdns.org {
reverse_proxy http://localhost:4000/ {
header_up X-Forwarded-Host {host}
header_up X-Forwarded-For {host}
header_up X-Real-IP {host}
}
}
here is the output of a request.
2025/04/16 15:52:17.005 WARN http.handlers.reverse_proxy aborting with incomplete response {"upstream": "localhost:4000", "duration": 0.000995717, "request": {"remote_ip": "103.250.137.61", "remote_port": "19389", "client_ip": "103.250.137.61", "proto": "HTTP/3.0", "method": "GET", "host": "ac.ghodawalaaman.duckdns.org", "uri": "/static/vite_dist/assets/Roboto-Light-DHTugVNA.woff2", "headers": {"User-Agent": ["Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0"], "Sec-Fetch-Dest": ["font"], "Accept-Encoding": ["identity"], "Cookie": ["REDACTED"], "Sec-Fetch-Mode": ["cors"], "Accept": ["application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8"], "Accept-Language": ["en-US,en;q=0.5"], "X-Forwarded-For": ["ac.ghodawalaaman.duckdns.org"], "X-Real-Ip": ["ac.ghodawalaaman.duckdns.org"], "Sec-Fetch-Site": ["same-origin"], "Alt-Used": ["ac.ghodawalaaman.duckdns.org"], "X-Forwarded-Host": ["ac.ghodawalaaman.duckdns.org"], "X-Forwarded-Proto": ["https"], "Referer": ["https://ac.ghodawalaaman.duckdns.org/static/vite_dist/assets/Layout-Cv860oWs.css"]}, "tls": {"resumed": false, "version": 772, "cipher_suite": 4865, "proto": "h3", "server_name": "ac.ghodawalaaman.duckdns.org"}}, "error": "writing: H3_REQUEST_CANCELLED"}
I also tried this but it didn't work either:
ac.ghodawalaaman.duckdns.org {
log {
output file ./azuracast.log
format json
}
reverse_proxy http://localhost:4000/ {
header_up X-Forwarded-For {request.remote}
header_up X-Real-IP {request.remote}
}
}
here is the azuracast.log: https://0x0.st/8fd7.bin
I am still very confused why it's not working...
Actually it looks like Caddy is supposed to set those automatically (I'm used to Nginx which doesn't).
You'll have to look at why the upstream isn't accepting them then. I'm not familiar with azuracast.
You’ll have to look at why the upstream isn’t accepting them then. I’m not familiar with azuracast.
yes you are right, I asked it in Azuracast discord server and they said I have to manually enable "reverse proxy" option.
Thank you so much for helping me <3
To be fair, it is confusing and I don’t recall whether the caddy docs mention it. Some applications require you to set a field called ‘trusted proxies’ and others will just work straight away.
Ok so This is a bit outside my Caddy knowledge base, but I remember reading about the Caddy RealIP module: https://github.com/captncraig/caddy-realip. Sounds like maybe that would be something to investigate.
ETA: Oops looks like Darkassassin07 has you covered.