Nginx 和 Nginx 之间启用 gzip 压缩

红薯 发布于 2015/08/21 23:04
阅读 735
收藏 11

OSChina 网站使用 Tengine Web 服务器,你可以把它等同于 Nginx。

为了解决南北互通以及做分流的问题,我们还搭建了一些 CDN 节点分布于不同省市。这些 CDN 节点本身也是装了 Tengine 服务器。

那么问题来了 CDN 服务器与主站服务器之间是通过 Nginx 的 proxy 模块连接的,而 Nginx 的 gzip 模块默认对 proxy 方式是不起作用的。相当于一个 100k 的网页,两台服务器之间也要响应传输 100k 的数据量。

如果服务器之间也通过 gzip 方式进行压缩,那么这个传输的数据量可以减少3-5倍,数据量小了不仅节省带宽,相同页面的传输速度也更快了。

要在两个 Nginx 之间启用 gzip 需要同时在两台服务器上做好配置。

主节点的配置最关键的部分包含如下两项:

gzip_http_version 1.0;
gzip_proxied any;
gzip_vary     on;

上述的 gzip_vary 配置使得生成 Vary: Accept-Encoding 的 HTTP 响应头。

CDN 节点配置

proxy_set_header   Accept-Encoding 'gzip';

其他的配置按照常规的 gzip 和 proxy 模块的配置方法即可。

你可以暂时不在 CDN 节点上增加 proxy_set_header Accept-Encoding 'gzip'; 项,然后查看主节点的 access_log 中记录的响应大小,然后再启用这项配置再看日志里的记录大小。

从 OSChina 首页来看,不启用压缩每个页面需要传递超过 100k 的数据,而启用压缩后只需传输 29k 的数据。

更多 OSChina 的网站配置请看 http://git.oschina.net/oschina/oschina-config

加载中
0
主编
主编
我们还搭建了一些 CDN 节点分布于不同省事
0
whaon
whaon
cdn是自己搭建的么
返回顶部
顶部