Add nginx reverse proxy documentation for S3 API

Fixes #7407

Add comprehensive documentation and example configuration for using
nginx as a reverse proxy with SeaweedFS S3 API while maintaining AWS
Signature V4 authentication compatibility.

Changes:
- Add docker/nginx/README.md with detailed setup guide
- Add docker/nginx/s3-example.conf with working configuration
- Update docker/nginx/proxy.conf with important S3 notes

The documentation covers:
- Critical requirements for AWS Signature V4 authentication
- Common mistakes and why they break S3 authentication
- Complete working nginx configurations
- Debugging tips and troubleshooting
- Performance tuning recommendations
This commit is contained in:
Chris Lu committed 2025-10-30 11:06:57 -07:00
1 parent d00a2a8707
commit bb444911ae
3 files changed
+445 -1

No files matched your search

+9 -1
View File
@@ -1,5 +1,13 @@
# HTTP 1.1 support
proxy_http_version 1.1;
# IMPORTANT: For S3 API with AWS Signature V4 authentication, you MUST:
# 1. Use $http_host (not $host) to preserve port numbers
# 2. Keep proxy_pass_request_headers on (default) to pass all headers unchanged
# 3. Set proxy_request_buffering off for chunked uploads
# 4. NOT explicitly set Authorization or X-Amz-* headers
# See docker/nginx/README.md for detailed S3 reverse proxy configuration
#proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
@@ -20,7 +28,7 @@ proxy_buffers 64 1m; # buffers used for reading a response from the proxied ser
proxy_buffer_size 8k; # maximum size of the data that nginx can receive from the server at a time is set
proxy_busy_buffers_size 2m;
proxy_request_buffering on; # PUT buffering
proxy_request_buffering on; # PUT buffering (set to 'off' for S3 chunked uploads)
client_body_buffer_size 64m; # buffer size for reading client request body
client_max_body_size 64m;