标签归档:http

Nginx常规操作:压缩配置、反向代理、http转向等

概述

nginx真的很好用!而且配置清晰,我在nginx遇到的功能特性以及特性都描述在这里,文档不定时更新

压缩配置

在Web开发中,传输资源(JS/CSS/图片)的体积非常影响使用者的体验。据说,一个页面只要超过7秒钟,浏览者就会失去等待的耐心,并关掉页面。

那么如何尽量减少体积呢?代码混淆压缩是一方面,其实我们还可以在更高角度对资源进行压缩,这个压缩,就是gzip。无论是前端还是后端,在资源体积过大的情况下,都应该使用gzip。我曾经使用gzip,成功将5M的文件压缩成700k

下面描述相关配置:

在http下,输入:

gzip  on; # 打开gzip
gzip_min_length 1k; # 低于1k的不压缩
gzip_comp_level 9; # 压缩比例,1-9,越高压缩率越大
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
gzip_disable "MSIE [1-6]\.";
gzip_vary on; 
然后调用curl,并查看返回的Content-Encoding
可以看到Content-Encoding是gzip,表明该资源是gzip压缩传送过来的

反向代理

有一些内网机器,并不想暴露在对外网络中,又或者是需要做负载均衡。那么这个情况下,就需要nginx的反向代理作为对外的入口了,我常用nginx的代理在http层的代理(貌似最新版本支持tcp代理了)

反向代理是什么?其实这个就应该和正向代理一起来讲述。正向代理,就像是一台中转路由器,它明确告诉你,它不是服务器,只是替你转发请求。而反向代理,就是伪装自己是最终端的服务器,它告诉你它就是处理服务器的终点,但实际上并不是,它还需要将请求转发给内网的其他服务器,这一个转发的过程你不知道,所以这是反向代理。

反向代理的配置如下:

proxy_pass http://127.0.0.1:55161; 
proxy_set_header