文章目录

一、更改进程数

1.1、具体操作

1.2、更改进程数配置

二、nginx压缩

2.1、压缩功能参数

2.2、压缩配置

三、FPM 参数优化

一、更改进程数

在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞。

可以使用ps aux命令查看Nginx运行进程的个数。

更改进程数的配置方法

修改配置文件,修改进程配置参数

1.1、具体操作

修改配置文件的worker_processes参数

一般设为CPU的个数或者核数

在高并发情况下可设置为CPU个数或者核数的2倍

运行进程数多一些, 响应访问请求时,Nginx就不会临时启动新的进程提供服务,减少了 系统的开销,提升了服务速度

使用ps aux查看运行进程数的变化情况

默认情况,Nginx的多个进程可能跑在-个CPU上,可以分配不同的进程给不同的CPU处 理,充分利用硬件多核多CPU。

1.2、更改进程数配置

1、修改配置文件

vim /usr/local/nginx/conf/nginx.conf
#修改 ,做负载
worker_processes  2;
worker_cpu_affinity 01 10;

#再重启服务
service nginx stop
service nginx start

#查看进程
ps aux | grep nginx

Nginx优化深入-----更改进程数+网页压缩+FPM优化_第1张图片

2、验证ps aux | grep nginx

Nginx优化深入-----更改进程数+网页压缩+FPM优化

二、nginx压缩

Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能。

允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的 访问体验,默认已经安装。

可在配置文件中加入相应的压缩功能参数对压缩性能进行优化。

2.1、压缩功能参数

压缩功能参数讲解

gzip on;                #开启gzip压缩功能
gzip_min_length 1k;     #压缩阈值
gzip_buffers 4 16k;     #buffer 大小为4个16k缓冲区大小
gzip_http_version 1.1;  #压缩版本
gzip_comp_level 6;      #压缩比率,最小为1,处理速度快,传输速度慢, 9最大压缩比,处理速度慢,传输速度快
gzip_types text/plain application/x-javascript text/css image/jpg image/jepg image/png image/gif application/xml text/javascript application/x-http-php #application/javascript application/json;
gzip_disable "MSIE [1-6]\.";    #配置禁用gzip条件,支持正则,表示ie6以下不启用gzip
gzip_vary on;           #选择支持very header 可以让前端的缓存服务器缓存经过gzip压缩页面

2.2、压缩配置

1、修改配置文件

vim /usr/local/nginx/conf/nginx.conf
//开启 gzip on;  //在下面添加
gzip on;    
gzip_min_length 1k;     
gzip_buffers 4 16k;     
gzip_http_version 1.1;      
gzip_comp_level 6;      
gzip_types text/plain application/x-javascript text/css image/jpg image/jepg image/png image/gif application/xml text/javascript application/x-http-php application/javascript application/json;
gzip_disable "MSIE [1-6]\.";    
gzip_vary on;   

//重启服务
service nginx restart

Nginx优化深入-----更改进程数+网页压缩+FPM优化_第2张图片

三、FPM 参数优化

Nginx 的PHP解析功能实现如果是交给FPM 处理的,为了提高PHP的处理速度,可对FPM 模块进行参数的调整。

1、首先安装带有 FPM模块的PHP 环境,保证PHP 可以正常运行;

2、FPM 进程有两种启动方式,由pm 参数指定,分别是 static 和dynamic,前者将产生固定的 fpm进程,后者将以动态的方式产生 fpm进程。

3、FPM优化参数讲解:

Static的方式的参数

pm.max_children: 指定启动的进程数量

Dynamic方式的参数

pm.max_children:指定启动的进程数量最大的数量

pm.start_servers:动态方式下初始的fpm进程数量

pm.min_spare_servers: 动态方式下最小的fpm空闭进程数

pm.max_spare_servers:动态方式下最大的fpm空闭进程数

vim php-fpm.conf

pid = run/php-fpm.pid
pm = dynamic
pm.max_children=20          //static模式下空闲进程数上限,大于下面的值;
pm.start_servers = 5        //动态方式默认开启的进程数,在最小和最大之间
pm.min_spare_servers = 2    //动态方式下最少空闲进程数
pm.max_spare_servers = 8    //动态方式下最大空闲进程数