Diberikan konfigurasi nginx berikut:
server {
listen 80;
server_name apilocal;
sub_filter "apiupstream/api" "apilocal";
sub_filter_once off;
location /people/ {
proxy_pass http://apiupstream/api/people/;
proxy_set_header Accept-Encoding "";
}
}
Sub_filter tidak merespons bagian respons dengan benar. Setelah saya menghapus proxy_pass dari konfigurasi, itu berfungsi dengan baik. Banyak orang dengan masalah ini akhirnya memiliki kompresi gzip dari server hulu. Saya telah memverifikasi bahwa server hulu saya tidak mengaktifkan penyandian gzip untuk tanggapannya. Tapi untuk berjaga-jaga, saya juga menggunakan proxy_set_header di atas untuk tidak menerima gzip.
Apakah ada hal lain yang berpotensi hilang?
James T Snell menjawabnya dalam komentar:
Saya tidak memiliki proxy_set_header Terima-Pengkodean ""; Anda memerlukannya untuk memberi tahu backend bahwa kompresi tidak diizinkan dalam respons.
sumber
apakah harus di dalam blok lokasi? juga, mungkin tidak ada kutipan pada pertandingan arg?
http://wiki.nginx.org/HttpSubModule
sumber