diff options
| author | chrislu <chris.lu@gmail.com> | 2024-10-01 12:57:45 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2024-10-01 12:57:45 -0700 |
| commit | f747767aa10da345c19a61a63687d52876efe6a5 (patch) | |
| tree | 8aab28aeb7c53cc726754235261fd825902dfb56 | |
| parent | 7dd480acad237f2aa5842dc14b1de051ddcae1fb (diff) | |
| download | seaweedfs-f747767aa10da345c19a61a63687d52876efe6a5.tar.xz seaweedfs-f747767aa10da345c19a61a63687d52876efe6a5.zip | |
support load balancer in front of s3
| -rw-r--r-- | weed/s3api/auth_signature_v4.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/weed/s3api/auth_signature_v4.go b/weed/s3api/auth_signature_v4.go index 0a156cfce..71ef6cd6e 100644 --- a/weed/s3api/auth_signature_v4.go +++ b/weed/s3api/auth_signature_v4.go @@ -664,7 +664,11 @@ func extractSignedHeaders(signedHeaders []string, r *http.Request) (http.Header, extractedSignedHeaders.Set(header, "100-continue") case "host": // Go http server removes "host" from Request.Header - extractedSignedHeaders.Set(header, r.Host) + if forwardedFor := r.Header.Get("X-Forwarded-For"); forwardedFor != "" { + extractedSignedHeaders.Set(header, forwardedFor) + } else { + extractedSignedHeaders.Set(header, r.Host) + } case "transfer-encoding": for _, enc := range r.TransferEncoding { extractedSignedHeaders.Add(header, enc) |
