四、Nginx 性能调优
程序开发
2023-09-12 19:34:36
一、Nginx 性能调优
1. worker_processes 工作进程最大连接数
# `2`个工作进程
worker_processes 2;
2. worker_cpu_affinity 工作进程绑定 CPU 内核
# 如:如果有`2`颗`CPU`内核,就可以进行如下配置
worker_processes 2;
worker_cpu_affinity 10 01;
# 如:如果有`4`颗`CPU`内核,就可以进行如下配置
worker_processes 4;
worker_cpu_affinity 1000 0100 0010 0001;
3. worker_priority 工作进程优先级
nice
值是进程的 静态优先级(它的取值范围是-20~+19
)。
-20
是 最高优先级,+19
是 最低优先级。
4. worker_rlimit_nofile 工作进程可以打开的最大句柄描述符个数
5. 是否打开 accept 负载均衡锁
- 当某一个
worker
进程 建立的连接数量,达到worker_connections
配置的 最大连接数 的7/8
时。- 会大大地减小 该
worker
进程 试图建立 新TCP
连接 的机会。
- 如果关闭它,那么 建立
TCP
连接 的耗时会更短。- 但
worker
进程 之间的 负载 会 非常不均衡,因此 不建议关闭它。
6. 使用 accept 锁后到真正建立连接之间的延迟时间
二、Nginx 高速缓存
1. 静态缓存
http {# 指定缓存区的根路径proxy_cache_path /data/nginx/cache_item # 缓存层级及目录位数# 缓存目录层级最高三层,每层`1~2`个字符表示# 如:`1:1:2`表示`一级目录:二级目录:三级目录`# `1`表示最后一个字符为目录名、`2`表示最后两个字符为目录名。levels=1:1:2 # 缓存块名称及内存块大小# 超出大小后最早的数据将会被清除# 如:`cache_item:500m`表示声明一个名为`cache_item`大小为`500m`的缓存。keys_zone=cache_item:500m # 最长闲置时间(有效期) # 如:`30d`如果一个数据被闲置`30`天将会被清除inactive=30d # 缓存区硬盘最大值,超出最大值闲置数据将会被清除max_size=10g;
}
location {# 指定缓存区,对应`http.keys_zone`中配置的缓存区proxy_cache cache_item;# 通过参数拼装缓存`key` # 如:`$host$uri$is_args$args`以全路径的`md5`值做做为`key`proxy_cache_key $host$uri$is_args$args;# 为不同的`HTTP`状态码设置缓存有效期proxy_cache_valid 200 304 12h; # 总体缓存时间expires 7d;
}
http {# 缓存声明proxy_cache_path /data/nginx/cache_qs levels=1:2 keys_zone=cache_qs:500m inactive=20d max_size=1g;
}
2. 清除缓存
# 下载`ngx_cache_purge`模块包(这⾥`nginx`版本为`1.6.2 purge`对应`2.0`版)
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz# 查看已安装模块
./sbin/nginx -v# 进⼊`Nginx`安装包⽬录,重新安装`--add-module`为模块解压的全路径
./configure --prefix=/root/svr/nginx --with-http_stub_status_module --with-http_ssl_module --
add-module=/root/svr/nginx/models/ngx_cache_purge-2.3# 重新编译
make# 拷⻉安装⽬录`/objs/nginx`⽂件⽤于替换原`nginx`⽂件# 检测查看安装是否成功
nginx -t
location ~ /clear(/.*) {# 允许访问的`IP`allow 127.0.0.1;allow 192.168.0.193;# 禁⽌访问的`IP`deny all;# 配置清除指定缓存区和路径(与`proxy_cache_key`一致)proxy_cache_purge cache_item $host$1$is_args$args;
}
- 访问生成缓存文件:http://www.qs.com/?a=1
- 访问清除缓存文件:http://www.qs.com/clear/?a=1
如果指定缓存不存在,则会报404
错误。
三、Nginx 集群
1. keepalived 安装运行
yum install keepalived# 配置文件`/etc/keepalived/keepalived.conf`
systemctl start keepalived.service
systemctl stop keepalived.service
systemctl restart keepalived.service
tail -f /var/log/messages
标签:
上一篇:
TypeScript的全部资料,以后都放这儿了
下一篇:
相关文章
-
无相关信息