我想使用nginx作为反向代理,我真的想优化nginx和后端之间的通信。我们传输的有效负载在未压缩时大约为1Mb文本,反向代理和服务器位于不同的数据中心。
我的理解和我所做的测试向我展示了反向代理和后端之间的压缩取决于客户端请求。
但这不是最佳的,因为如果客户端在读取反向代理响应时没有配置为使用gzip,则没有理由不在nginx和后端服务器之间使用gzip。
我想强制反向代理和后端之间的通信使用gzip,即使客户端没有请求它。
我设法让它工作但我不确定它是否配置良好,特别是因为我需要强制Accept
标题。
我的想法是在代理请求时强制Accept-Encoding: gzip
,如果客户端没有请求gzip,则使用gunzip。
upstream backend {
server fqdn:443;
keepalive 32;
}
server {
listen 8080;
gzip on;
gunzip on;
gzip_proxied any;
gzip_vary on;
gzip_types
text/css
text/javascript
text/xml
text/plain
application/javascript
application/x-javascript
application/json;
proxy_buffering "off";
proxy_http_version 1.1;
location / {
proxy_set_header "Accept-Encoding" "gzip";
proxy_pass https://backend;
}
}
我必须强制这个标题是正常的吗?
为什么gzip_proxied any
还不够?
提前致谢