夜间模式暗黑模式
字体
阴影
滤镜
圆角
主题色
nginx proxy_pass后gzip不生效

有一台服务器只能对外开80端口,但该服务器有几个项目同时共用。因此做了一个方案,使用不同的url前缀,proxy_pass到对应项目监听的端口。

如default.conf配置如下

server {
	listen       80 default_server;

	location /a/ {
           rewrite ^/a/(.*)$ /$1 break; # 剥掉 /a 这一层
           proxy_pass http://127.0.0.1:8083;
        }

	location /b/ {
           rewrite ^/b/(.*)$ /$1 break;
           proxy_pass http://127.0.0.1:8084;
        }

	location /c/ {
           rewrite ^/c/(.*)$ /$1 break;
           proxy_pass http://127.0.0.1:8085;
        }
}

a项目配置里开启了gzip

server {
    listen 8083;

    root /path/to/a;

    gzip on;
    gzip_comp_level 3;

    ....
}

但发现gzip未生效。

后面把gzip配置放到default.conf的location部分就正常运行了。

location /a/ {
   gzip on;
   gzip_comp_level 6;
   rewrite ^/a/(.*)$ /$1 break; # 剥掉 /a 这一层
   proxy_pass http://127.0.0.1:8083;
}

对于这问题,暂未看到合理的解释。知晓原理的同学欢迎留言指教下,谢谢。

 

ps: apachebench(ab) 只支持http 1.0,如果要测试gzip的话,nginx配置还需加上 gzip_http_version 1.0;

 

暂无评论

发送评论 编辑评论


				
上一篇
下一篇