nginx的深度调优

文章目录
  1. 1. 设置静态资源的过期时间
  2. 2. 反向代理设置缓存
  3. 3. 关闭access_log
  4. 4. 设置worker_processes
  5. 5. Linux环境下设置io多路复用(epoll)模型

参考文章

Nginx全能解析及性能调优 - 掘金

Nginx调优 - 知乎

Aleyson爱逼逼

设置静态资源的过期时间

image-20220106161111684

反向代理设置缓存

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:200m inactive=60m loader_threshold=300 loader_files=300 max_size=2000m;

关闭access_log

1
2
3
4
5
6
# svg, fonts
location ~ /last/\.(?:jpg|png|gif|cmpt|b3dm)$ {
add_header Access-Control-Allow-Origin "*";
expires 7d;
access_log off;
}

设置worker_processes

grep processor /proc/cpuinfo | wc –l 获取CPU核心数为8

可以获取CPU相关的信息

1
2
3
4
5
6
worker_processes auto;
worker_rlimit_nofile 65535;
#pid logs/nginx.pid;
events {
worker_connections 65535;
}

通常需要的设置的worker_processes 为核心数除以2的n次方.推荐设置为auto

设置gzip压缩

这个需要确认这个请求是支持gzip压缩的可以参考

image-20220107162340670

tips

1
2
3
4
5
6
7
8
gzip on;  #是否开启gzip模块 on表示开启 off表示关闭
gzip_static on;
gzip_buffers 4 16k; #设置压缩所需要的缓冲区大小
gzip_comp_level 6; #压缩级别1-9,数字越大压缩的越好,也越占用CPU时间
gzip_min_length 1k; #设置允许压缩的最小字节
gzip_http_version 1.0; #设置压缩http协议的版本,默认是1.1 如果nginx前面还有反向代理 这要设置为1.0
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png application/octet-stream application/javascript; #设置压缩的文件类型
gzip_vary on; #加上http头信息Vary: Accept-Encoding给后端代理服务器识别是否启用 gzip 压缩

image-20220106161202850

Linux环境下设置io多路复用(epoll)模型

1
2
3
4
5
6
7
worker_processes     auto;
worker_rlimit_nofile 65535;
events {
use epoll; # 这个设置是针对2.6内核 cat /proc/version可读取
multi_accept on;
worker_connections 65535;
}