Nginx 是一个高性能的HTTP和反向代理web服务器,因此nvisual在部署前端包时便采用了它作为服务器,版本使用1.14.1以上。在默认的配置下,还需要向nginx各模块添加配置才能达到生产需要。

接下来,从http模块开始,再到server、location模块,分别说明一下各配置的参数。

一、http模块

nVisual部署之nginx配置说明_光纤资源管理

1.sendfile,用来开启高效的文件传输模式,语法sendfile on |off,默认值off。

2.tcp_nopush,须在sendfile打开的状态下才会生效,主要是用来提升网络包的传输效率,语法tcp_nopush on|off,默认值off。

3.tcp_nodelay,须在keep-alive连接开启的情况下才生效,来提高网络包传输的实时性,语法tcp_nodelay on|off,默认值off。

4.keepalive_timeout,来指定 KeepAlive 的超时时间,若将它设置为 0,就禁止了 keepalive连接。

5.client_max_body_size,限制请求体的大小,在这里主要指定上传文件的大小限制,默认1m,如果很大,还要适当调整上传超时时间,如果超过设定大小,则返回413。

6.client_body_timeout,读取请求实体的超时时间,在这里主要是应用上传文件的时间限制,如果超时,则返回413。

7.include /etc/nginx/mime.types,文件扩展名与文件类型映射表,如果不加载则会出现异常,例如css文件无法解析,页面没有相应的样式。

二、server模块

nVisual部署之nginx配置说明_光纤资源管理_02

1.gzip,用于开启或者关闭gzip功能,语法gzip on|off,默认off。

2.gzip_comp_level,用于设置Gzip压缩程度,级别从1-9,1表示压缩程度最低,效率最高,9刚好相反,压缩程度最高,但是效率最低最费时间,所以使用时,注意并不是级别越高越好。建议设置在中间值5/6即可。

3.gzip_min_length,进行压缩响应页面的最小长度,响应页面的大小可以通过头信息中的Content-Length来获取,如果设置的值大于content-length将不进行压缩。

4.gzip_types,所选择的值可以从mime.types文件中进行查找,有些类型比如图片、视频等本身压缩了也节省不了多少空间,反而会浪费CPU资源,所以在选择压缩的时候需要注意是否有必要进行压缩。

5.gzip_vary,用于设置使用Gzip进行压缩发送是否携带“Vary:Accept-Encoding”头域的响应头部。主要是告诉接收方,所发送的数据经过了Gzip压缩处理。

6.gzip_buffers,用于处理请求压缩的缓冲区数量和大小。

7.gzip_http_version,针对不同的HTTP协议版本,可以选择性地开启和关闭Gzip功能,该指令是指定使用Gzip的HTTP最低版本,该指令一般采用默认值即可,默认值是1.1。

nVisual部署之nginx配置说明_综合布线软件_03

8.proxy_buffering,设置是否开启proxy的buffer功能,参数的值为on或者off。如果这个设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个指令将会失效,但是无论proxy_buffering是否开启,proxy_buffer_size都是生效的。

9.proxy_buffer_size,用来设置一个特殊的buffer大小,从被代理服务器(C)上获取到的第一部分响应数据内容到代理服务器(B)上,通常是header,就存到了这个buffer中,如果该参数设置太小,会出现502错误码,这是因为这部分buffer不够存储header信息。建议设置为4k。

10.proxy_buffers,这个参数设置存储被代理服务器上的数据所占用的buffer的个数和每个buffer的大小,所有buffer的大小为这两个数字的乘积。

11.proxy_busy_buffer_size,在所有的buffer里,我们需要规定一部分buffer把自己存的数据传给A,这部分buffer就叫做busy_buffer,proxy_busy_buffer_size参数用来设置处于busy状态的buffer有多大。对于B上buffer里的数据何时传输给A,

(1)如果完整数据大小小于busy_buffer大小,当数据传输完成后,马上传给A;

(2)如果完整数据大小不少于busy_buffer大小,则装满busy_buffer后,马上传给A;

12.proxy_max_temp_file_size,设置临时文件的总大小。

13.proxy_temp_file_wirte_size,设置同时写入临时文件的数据量的总大小。通常设置为8k或者16k。

三、location模块

nVisual部署之nginx配置说明_数据中心DCIM_04

1.root,指定根目录

2.index,指定默认访问的页面。

3.try_files,作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。

nVisual部署之nginx配置说明_网络可视化_05

4.proxy_pass,用来设置代理服务器的地址。

5.proxy_redirect,该指令用来修改被代理服务器返回的响应头中的Location头域和“refresh”头域。

 现在的nginx配置不是一成不变的,在将来的需求增加后,也许还会有更多的设定加入,合理的、高效的利用好nginx,也是前端体现高性能的关键所在。

文:王剑飞