Có vẻ như nginx không hỗ trợ tốt các yêu cầu chunked. Nhưng tôi đang cố gắng để có được một câu trả lời dứt khoát (và hiện tại). Tôi có một khách hàng thực hiện một yêu cầu SOAP đến một máy chủ từ một máy khách Java đặt tiêu đề Transfer-Encoding: chunked
. Tất cả đều hoạt động tốt khi tôi kết nối trực tiếp với ứng dụng của tôi trên Tomcat.Làm thế nào để thực hiện một yêu cầu chunked qua nginx
Nhưng khi tôi đặt nginx giữa chúng, thì mọi thứ sẽ bị hỏng.
Để thêm một vài chi tiết: Tôi đang làm việc với CloudFoundry. Tôi đang sử dụng Micro Cloud Foundry để xác nhận rằng mọi thứ hoạt động như mong đợi trong trường hợp không có nginx. Nhưng yêu cầu của tôi là sử dụng cloudfoundry.com, vì vậy tôi không có khả năng bỏ qua nginx ở đó.
This question and answer nói rằng đây có lẽ là giải pháp thay thế duy nhất của tôi: http://wiki.nginx.org/NginxHttpChunkinModule. Nhưng cách giải quyết đó không có sẵn, vì tôi không thể sửa đổi cấu hình trên cloudfoundry.com.
This question cũng giống như vậy, nhưng nó thực sự bao gồm yêu cầu này ngược lại. Nó bao gồm các câu trả lời chunked chứ không phải là yêu cầu chunked.
Vậy làm thế nào về bất kỳ thay đổi nào trên máy khách để giải quyết vấn đề này? Có thể gửi cả hai tiêu đề Transfer-Encoding: chunked
và Content-Length: 123
làm tiêu đề không? Khu vực này là mới đối với tôi, nhưng có vẻ như từ các dự án như Apache HttpComponents rằng một trong những sẽ thiết lập hoặc chiều dài hoặc chunking nhưng không phải cả hai. Điểm chunking là bạn không cần biết chiều dài khi yêu cầu bắt đầu. Tôi có thể nói với khách hàng của tôi để sử dụng HTTP/1.0 và chơi tốt đẹp với nginx mà không chunking? Có những ý tưởng giải pháp khác mà tôi quên không?
Có thể gửi cả Chuyển mã hóa: chunked và Content-Length: 123 dưới dạng tiêu đề không? Điều đó phổ biến? – mdahlman