Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/scheme/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx 替换来自代理的压缩响应中的文本_Nginx_Gzip_Reverse Proxy - Fatal编程技术网

Nginx 替换来自代理的压缩响应中的文本

Nginx 替换来自代理的压缩响应中的文本,nginx,gzip,reverse-proxy,Nginx,Gzip,Reverse Proxy,我想替换来自上游HTTP服务器的部分响应体,我正在使用Ngninx反向代理 有sub_filter指令,但问题出在这里 本模块仅适用于纯文本。如果响应被压缩,它将无法解压缩响应并忽略此响应。该模块可以与gzip过滤模块兼容。但它不能用于代理压缩响应。您可以禁用压缩响应,如下所示: proxy_set_header接受编码“” 嗯 有没有其他方法可以让我在不丢失上游压缩的情况下修改代理内容?我们的案例也有类似的问题,我们使用了“gunzip”来自ngnix的模块,它帮助我们解压缩压缩响应并根据要求

我想替换来自上游HTTP服务器的部分响应体,我正在使用Ngninx反向代理

sub_filter
指令,但问题出在这里

本模块仅适用于纯文本。如果响应被压缩,它将无法解压缩响应并忽略此响应。该模块可以与gzip过滤模块兼容。但它不能用于代理压缩响应。您可以禁用压缩响应,如下所示:

proxy_set_header接受编码“”


有没有其他方法可以让我在不丢失上游压缩的情况下修改代理内容?

我们的案例也有类似的问题,我们使用了“gunzip”来自ngnix的模块,它帮助我们解压缩压缩响应并根据要求更新响应。

这是一种标准配置,用于禁用上游压缩并在中压缩Nginx@Dayo对。我的问题是,是否可以不禁用上游压缩,即解压缩、替换、压缩。可能需要在Nginx和上游之间使用另一个web服务器/代理/脚本来实现这一点。如果您了解perl,那么应该可以使用ngx_perl模块截取、解压缩、替换和压缩数据。ngx_lua模块也应该能够处理此问题。但我不相信您会找到现成的解决方案。请参阅使用ngx_lua的尝试: