Nginx優化深刻-----更改進程數+網頁壓縮+FPM優化

文章目錄

1、更改進程數

1.一、具體操做

1.二、更改進程數配置

2、nginx壓縮

2.一、壓縮功能參數

2.二、壓縮配置

3、FPM 參數優化

1、更改進程數

在高併發場景,須要啓動更多的Nginx進程以保證快速響應,以處理用戶的請求,避免形成阻塞。

可使用ps aux命令查看Nginx運行進程的個數。

更改進程數的配置方法

修改配置文件,修改進程配置參數

1.一、具體操做

修改配置文件的worker_processes參數

通常設爲CPU的個數或者核數

在高併發狀況下可設置爲CPU個數或者核數的2倍

運行進程數多一些, 響應訪問請求時,Nginx就不會臨時啓動新的進程提供服務,減小了 系統的開銷,提高了服務速度

使用ps aux查看運行進程數的變化狀況

默認狀況,Nginx的多個進程可能跑在-個CPU上,能夠分配不一樣的進程給不一樣的CPU處 理,充分利用硬件多核多CPU。

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優化

二、驗證ps aux | grep nginx

Nginx優化深刻-----更改進程數+網頁壓縮+FPM優化

2、nginx壓縮

Nginx的ngx_http_gzip_module壓縮模塊提供對文件內容壓縮的功能。

容許Nginx服務器將輸出內容在發送客戶端以前進行壓縮,以節約網站帶寬,提高用戶的 訪問體驗,默認已經安裝。

可在配置文件中加入相應的壓縮功能參數對壓縮性能進行優化。

2.一、壓縮功能參數

壓縮功能參數講解

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.二、壓縮配置

一、修改配置文件

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優化

3、FPM 參數優化

Nginx 的PHP解析功能實現若是是交給FPM 處理的,爲了提升PHP的處理速度,可對FPM 模塊進行參數的調整。

一、首先安裝帶有 FPM模塊的PHP 環境,保證PHP 能夠正常運行;

二、FPM 進程有兩種啓動方式,由pm 參數指定,分別是 static 和dynamic,前者將產生固定的 fpm進程,後者將以動態的方式產生 fpm進程。

三、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    //動態方式下最大空閒進程數
相關文章
相關標籤/搜索