Nginx反向代理使用Gzip

问题

使用多个nginx对服务器进行代理时,发现反向代理nginx传输文件时丢失了gzip配置

修复方式1

1、反向代理nginx

http {
	gzip on;
	gzip_http_version 1.1;
}

server {
	location / {
		proxy_http_version 1.1;
		proxy_set_header Connection "";
    }
}

2、真实服务器nginx

http {
	gzip on;
	gzip_http_version 1.1;
}

修复方式2

1、反向代理nginx

http {
	gzip on;
	gzip_http_version 1.1;
}

2、真实服务器nginx

http {
	gzip on;
	gzip_http_version 1.0;
}

原理

  • nginx 反向代理服务器到真实应用服务器的请求,使用的http协议版本为1.0。早期浏览器不支持 gzip压缩,因为早期都是http 1.0协议,所以gzip 默认在 http 1.0 协议下是不生效的
    Nginx反向代理使用Gzip_第1张图片

  • gzip_http_version 参数是用来识别并控制gzip 在什么版本的 http 协议中生效的,这里设置为1.0 表示 http 1.0 协议下,gzip 仍旧打开
    Nginx反向代理使用Gzip_第2张图片

你可能感兴趣的:(前端)