Tôi vừa thử cái này trên một máy chủ nginx tôi đang ngồi trước một phụ trợ Apache.
curl -H "Content-Encoding: gzip" --include -d @testfile.gz http://example.com/upload_file.php
curl tự động thêm:
Expect: 100-continue
để các tiêu đề yêu cầu.
nginx gửi lại
HTTP/1.1 100 Continue
đáp ứng và cuộn tròn theo sau bằng cách gửi dữ liệu được nén. nginx đã chuyển toàn bộ lô trở lại cho Apache, vẫn được nén và vẫn còn Content-Encoding:
nguyên tiêu đề.
Nếu tôi không thêm Content-Encoding: gzip
tiêu đề bằng curl, tôi đã không nhận được phản hồi HTTP 100 nhưng mọi thứ khác đều giống nhau.
Điều này chưa trả lời câu hỏi của bạn nhưng điều đó có nghĩa là nginx không xử lý vấn đề này theo mặc định hoặc không giải nén phần thân của yêu cầu khi nó được ủy quyền. Tôi quan tâm đến câu trả lời cho câu hỏi này vì vậy tôi sẽ xem liệu tôi có thể dùng thử trên máy chủ nginx không ủy quyền một lát sau không.
Có lẽ bạn có thể giải quyết vấn đề băng thông bằng cách ủy quyền các yêu cầu đó cho một phụ trợ Apache với mod_deflate nhưng bỏ qua lý do bạn chọn nginx ở vị trí đầu tiên.