From 2c71f995b73774d5b910d49a024e51c4ac902f3a Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sat, 22 Mar 2025 20:55:25 +0800 Subject: Support X-Forwarded-For for reverse proxies --- http_server.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'http_server.go') diff --git a/http_server.go b/http_server.go index c86dae6..6531748 100644 --- a/http_server.go +++ b/http_server.go @@ -16,7 +16,18 @@ import ( type forgeHTTPRouter struct{} func (router *forgeHTTPRouter) ServeHTTP(writer http.ResponseWriter, request *http.Request) { - clog.Info("Incoming HTTP: " + request.RemoteAddr + " " + request.Method + " " + request.RequestURI) + var remoteAddr string + if config.HTTP.ReverseProxy { + remoteAddrs, ok := request.Header["X-Forwarded-For"] + if ok && len(remoteAddrs) == 1 { + remoteAddr = remoteAddrs[0] + } else { + remoteAddr = request.RemoteAddr + } + } else { + remoteAddr = request.RemoteAddr + } + clog.Info("Incoming HTTP: " + remoteAddr + " " + request.Method + " " + request.RequestURI) var segments []string var err error -- cgit v1.2.3