Bản cập nhật gần đây cho zlib do một lỗ hổng bảo mật dường như gây ra sự cố lớn khi cung cấp PHP-FPM 8.0 qua nginx trên tiêu điểm Ubuntu. Bất kỳ yêu cầu nào có mã hóa gzip đều không thành công ngay khi bắt đầu phản hồi, mặc dù nginx ghi lại các yêu cầu là thành công và kích thước chính xác. Nếu tôi đưa ra yêu cầu mà không có Mã hóa chấp nhận
tiêu đề, nó hoạt động hoàn hảo.Như một giải pháp thay thế, tôi đang cố gắng tắt tất cả hỗ trợ gzip, nhưng nó có vẻ rất dai dẳng... Cho đến nay tôi đã thử các cài đặt này trong nginx:
gzip tắt;
tắt fastcgi_buffering;
add_header Mã hóa chấp nhận "";
proxy_set_header Mã hóa chấp nhận "";
và tôi cũng đã kiểm tra rằng không có chỉ thị nào khác bật lại các lệnh này bằng cách grepping nginx -T
đầu ra.
Tuy nhiên, nếu tôi kết xuất các tiêu đề yêu cầu từ PHP (tức là sau khi nó được chuyển qua nginx), tôi vẫn thấy tiêu đề chấp nhận này:
Chấp nhận mã hóa: giảm phát, gzip, br, zstd
vì vậy nginx là không phải tước nó khỏi yêu cầu trước khi nó được chuyển qua PHP-FPM. Tôi đã thử đặt các lệnh này ở cấp độ máy chủ và vị trí, với kết quả tương tự.
Trong PHP, tôi đã tắt tất cả bộ đệm đầu ra, nhưng dường như không thể tắt zlib mà không cần biên dịch lại.
Làm cách nào tôi có thể yêu cầu nginx loại bỏ tiêu đề yêu cầu này để cả nginx và PHP đều không nén phản hồi?