|
@@ -298,8 +298,19 @@ func addXForwardedForHeader(req *http.Request) {
|
|
|
}
|
|
|
|
|
|
if req.Header.Get("X-Real-Ip") == "" {
|
|
|
- //Not exists. Fill it in with client IP
|
|
|
- req.Header.Set("X-Real-Ip", clientIP)
|
|
|
+ //Check if CF-Connecting-IP header exists
|
|
|
+ CF_Connecting_IP := req.Header.Get("CF-Connecting-IP")
|
|
|
+ if CF_Connecting_IP != "" {
|
|
|
+ //Use CF Connecting IP
|
|
|
+ req.Header.Set("X-Real-Ip", CF_Connecting_IP)
|
|
|
+ } else {
|
|
|
+ // Not exists. Fill it in with first entry in X-Forwarded-For
|
|
|
+ ips := strings.Split(clientIP, ",")
|
|
|
+ if len(ips) > 0 {
|
|
|
+ req.Header.Set("X-Real-Ip", strings.TrimSpace(ips[0]))
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|