Opened 3 years ago

Closed 3 years ago

#1109 closed defect (invalid)

sub_filter, with proxy_pass and Accept-Encoding: gzip

Reported by: Дилян Палаузов Owned by:
Priority: minor Milestone: 1.10.2
Component: nginx-core Version: 1.10.x
Keywords: Cc:
uname -a:
nginx -V: nginx version: nginx/1.10.1
built by gcc 6.2.1 20161011 (GCC)
configure arguments: --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/nginx.log --without-poll_module --without-select_module --with-http_sub_module --http-log-path=/var/log/nginx--without-http_ssi_module --without-http_uwsgi_module --without-http_scgi_module --without-http_upstream_ip_hash_module --without-http_split_clients_module --without-http_empty_gif_module

Description

My configuration file:
events {

worker_connections 1024;

}

http {

access_log /var/log/nginx/access.log;

server {

listen *:444;
location /.well-known {

sub_filter mail.aegee.org:8081 BBBB;
sub_filter_once off;
proxy_pass http://mail.aegee.org:8081;
proxy_pass_request_headers on;

}

}

}

When I visit http://mail.aegee.org:444/.well-known and send "Accept-Encoding: gzip", the BBBB replacement does not takes place. But if Accept-Encoding does not contain gzip, then the substitution happens.

I expect that the substitution does happen, even when Accept-Encoding: gzip is sent.

Change History (2)

in reply to:  description comment:1 by Дилян Палаузов, 3 years ago

Adding proxy_set_header Accept-Encoding ""; or disabling gzip compression in the backend does help.

comment:2 by Maxim Dounin, 3 years ago

Resolution: invalid
Status: newclosed

This is expected, sub_filter can't do replacements in a response which was gzipped by a backend.

Note: See TracTickets for help on using tickets.