aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2024-10-01 12:57:45 -0700
committerchrislu <chris.lu@gmail.com>2024-10-01 12:57:45 -0700
commitf747767aa10da345c19a61a63687d52876efe6a5 (patch)
tree8aab28aeb7c53cc726754235261fd825902dfb56
parent7dd480acad237f2aa5842dc14b1de051ddcae1fb (diff)
downloadseaweedfs-f747767aa10da345c19a61a63687d52876efe6a5.tar.xz
seaweedfs-f747767aa10da345c19a61a63687d52876efe6a5.zip
support load balancer in front of s3
-rw-r--r--weed/s3api/auth_signature_v4.go6
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)