2023-02-21
温故知新
00

目录

简介
gzip压缩
常用配置项
配置示例
rewrite重写URL
示例:

简介

本文用于记录Nginx使用技巧。

gzip压缩

Nginx开启Gzip压缩功能,可以使网站的css、js 、xml、html 文件在传输时进行压缩,提高访问速度,进而优化Nginx性能!

Nginx可以通过ngx_http_gzip_module模块、ngx_http_gzip_static_module模块和ngx_http_gunzip_module模块对这些指令进行解析和处理。

在Nginx配置文件中可以配置Gzip的使用,相关指令可以在http区域、server区域、location区域配置。

ps:如果你的服务器带宽较小,开启gzip压缩可以提升访问速度哦!

常用配置项

  • gzip on:开启gzip压缩功能
  • gzip_vary onon为开启,off为关闭,开启后,服务器返回数据时会在头部带上"Vary
    "的标识。客户端便可以知道获取到的数据是否已经被压缩,默认为关闭
  • gzip_min_length:指定请求的数据超过某个阈值后才开启Gzip压缩功能,压缩很小的珊瑚橘反而会把数据变大,从而影响性能
  • gzip_buffers:该指令用于设置文件使用的缓存空间大小,number为指定Nginx服务器要向服务器申请的缓存空间的个数,size 每个缓存的空间大小,从0.7版本之后默认情况下size*number的值为128,其中size去系统内存页的大小
  • gzip_disable:支持针对不同匹配条件选择项关闭压缩功能,其中regex根据浏览器标志进行设置,支持使用正则表达式
  • gzip_http_version:支持针对不同的http版本设置。早期的浏览器或者http不支持Gzip压缩功能,可能会出现乱码等现象。截止目前大多数客户端都支持Gzip压缩功能,因此选择默认即可
  • gzip_comp_level
  • gzip_types:响应报文数据格式,或者说类型,对应http响应头中的Content-type字段,如常见的有text/html、text/css、application/json、application/javaScript等。用于指定要压缩的响应报文类型。”*”表示压缩所有格式的响应报文,多种格式用空格隔开。如text/html text/css text/plain

配置示例

worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; keepalive_timeout 65; #开启gzip压缩功能 gzip on; gzip_min_length 1024; gzip_buffers 4 16k; gzip_comp_level 2; gzip_types *; gzip_vary on; server { listen 80; server_name localhost; location / { root /data/software/nginx/html/dist; index index.html index.htm; } } }

rewrite重写URL

实际开发中,无论出于什么原因,总是经常会有监听的uri需要替换或去除的需求,可以使用rewrite对url进行重写,以达到任何自定义的需求。

示例:

location /api/ { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://backend_server; } # 代理为图片(文件)服务器,通过rewrite重写images为空,以达到去除请求url中/images节点的需求 location /images/ { rewrite ^/images/(.*)$ /$1 break; root /usr/local/img; }
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!