In ngx_http_gzip_header_filter there is a call to ngx_http_clear_etag. While this spec-compliant it loses the benefits of etags. Two alternate approaches would be: - Only clear the etag if it's strong. - Append ";gzip" to the etag, remove it from incoming "if-none-match" requests. Would a patch to implement one of these be welcome? Jeff