Nginx反向代理启用AspNetCore站点的压缩

2020-09-12  乐帮网

netcore nginx

我使用AspNetCore开发了多个站点,部署环境为CentOS7 + Nginx + Supervisord 。
这个时候有个需求启用gzip压缩传输站点内容。
于是网上找到好多设置 Nginx 启用gzip的教程,写的都挺详细的。这里不多说,只给个示例,
https://blog.csdn.net/qq_26975307/article/details/89399758
都给了详细配置都蛋疼的没有说在加到哪里。
应该是加到对应的 server节 
示例:

server{
	listen	80;
	server_name lebang2020.cn;
	 gzip on;
	#不压缩临界值,大于1K的才压缩,一般不用改
	gzip_min_length 1k;
	#buffer,就是,嗯,算了不解释了,不用改
	gzip_buffers 4 16k;
	#用了反向代理的话,末端通信是HTTP/1.0,默认是HTTP/1.1
	#gzip_http_version 1.0;
	#压缩级别,1-10,数字越大压缩的越好,时间也越长,看心情随便改吧
	gzip_comp_level 2;
	#进行压缩的文件类型,缺啥补啥就行了,JavaScript有两种写法,最好都写上吧,总有人抱怨js文件没有压缩,其实多写一种格式application/javascript 就行了
	gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
	#跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
	gzip_vary off;
	#IE6对Gzip不怎么友好,不给它Gzip了
	gzip_disable "MSIE [1-6]\.";
	localtion / {
		root html;
		index index.html index.htm;
	}
	......

上面配置对于直接挂载的静态站点有效,如果我是反向代理的站点呢?就像下面这样的 AspNetCore站点

 location / {
		proxy_pass http://localhost:9000;
        	proxy_set_header Upgrade $http_upgrade;
        	proxy_set_header Connection keep-alive;
        	proxy_set_header Host $host;
        	proxy_cache_bypass $http_upgrade;
      }

是不会有压缩效果的。检验是否有效在chorme 里F12 查看Response的Header中是否 包含Content-Encoding:gzip 内容。

我的解决方案:更多内容请先点击捐赠按钮。

Nginx系列目录:配置示例

 

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力