소스 검색

use x-forwarded-for in nginx log parse if so desired

Tobias von Dewitz 6 년 전
부모
커밋
bed5afdb48
1개의 변경된 파일12개의 추가작업 그리고 0개의 파일을 삭제
  1. 12 0
      main.go

+ 12 - 0
main.go

@@ -278,6 +278,18 @@ func nginxLogCapture(logfile, format string) {
 			continue
 		}
 
+		if *useXForwardedAsSource {
+			xff, err := logEntry.Field("http_x_forwarded_for")
+			if err != nil {
+				remote = xff
+			}
+		}
+
+		if remote == "" {
+			log.Println("remote is empty: ignoring request.")
+			continue
+		}
+
 		// only use the first host in case there are multiple hosts in the log
 		if cidx := strings.Index(remote, ","); cidx >= 0 {
 			remote = remote[0:cidx]