Nginx Nginx效能優化

2021-08-28 14:12:23 字數 2219 閱讀 2850

在大多數情況下,乙個常規安裝的nginx對**來說已經能很好地工作了。然而如果想擠壓出nginx的效能,就需要了解哪些指令會影響nginx效能,在本文中將解釋nginx的哪些設定可以微調。需要注意一點,這是乙個簡單的預覽——那些可以通過微調來提高效能設定的概述,不同的環境可能情況不太一樣。

對於nginx的調優,可以大致從如下指令著手:

1. worker_processes 

2. worker_connections

3. buffers

4. timeouts

5. gzip compression

6. static file caching

7. logging

worker_processes表示工作程序的數量,一般情況設定成cpu核的數量即可,乙個cpu配置多於乙個worker數,對nginx而言沒有任何益處,另外不要忘了設定worker_cpu_affinity,這個配置用於將worker process與指定cpu核繫結,降低由於多cpu核切換造成的暫存器等現場重建帶來的效能損耗。

grep processor /proc/cpuinfo |

wc -l

這個命令會告訴你當前機器是多少核,輸出為2即表示2核。

worker_connections配置表示每個工作程序的併發連線數,預設設定為1024。

可以更新如下配置檔案來修改該值:

sudo vim /etc/nginx/nginx.conf
worker_processes 1;

worker_connections 1024;

buffers:另乙個很重要的引數為buffer,如果buffer太小,nginx會不停的寫一些臨時檔案,這樣會導致磁碟不停的去讀寫,現在我們先了解設定buffer的一些相關引數:

client_body_buffer_size 10k;

client_header_buffer_size 1k;

client_max_body_size 8m;

large_client_header_buffers 2 1k;

client_header_timeoutclient_body_timeout:設定請求頭和請求體(各自)的超時時間,如果沒有傳送請求頭和請求體,nginx伺服器會返回408錯誤或者request time out。

keepalive_timeout:給客戶端分配keep-alive鏈結超時時間。伺服器將在這個超時時間過後關閉鏈結,我們將它設定低些可以讓nginx持續工作的時間更長。

send_timeout:指定客戶端的響應超時時間。這個設定不會用於整個**器,而是在兩次客戶端讀取操作之間。如果在這段時間內,客戶端沒有讀取任何資料,nginx就會關閉連線。

client_body_timeout 12;

client_header_timeout 12;

keepalive_timeout 15;

send_timeout 10;

開啟gzip,gzip可以幫助nginx減少大量的網路傳輸工作,另外要注意gzip_comp_level的設定,太高的話,nginx服務會浪費cpu的執行週期。

gzip             on;

gzip_comp_level 2;

gzip_min_length 1000;

gzip_proxied expired no-cache no-store private auth;

location ~* .(jpg|jpeg|png|gif|ico|css|js)$
以上的檔案型別可以根據nginx伺服器匹配增加或減少。

access_log設定nginx是否將儲存訪問日誌。關閉這個選項可以讓讀取磁碟io操作更快。 可以修改配置檔案將該功能關閉:

access_log off;
然後重啟nginx服務:

sudo

service nginx restart

nginx nginx的效能優化

配置虛擬主機 例子1 基於網域名稱的虛擬主機 server 例子2 基於埠 ip 的虛擬主機配置 server 全域性區 worker processes 1 有1個工作的子程序,可以自行修改,但太大無益,因為要爭奪cpu,一般設定為 cpu數 核數 event 1 判斷nginx的瓶頸 1.1 首...

mysql效能優化 mysql效能優化

優化方式 1.空間換時間 冗餘 2.時間換空間 字段優先使用型別 int date char varchar text 索引型別 btree索引 hash索引 索引的葉子下,存放乙個資訊指向所在行的資料位址。btree有利於範圍查詢,hash有利於精確查詢。btree用的更多一些。btree索引的常...

效能優化 電量優化

使用battery historian來監測電量的情況,battery historian時google的乙個開源專案 具體安裝過程參見 當出現下列畫面,說明已經開啟 其開啟成功以後,訪問網頁如下所示 說明 這裡使用的是一台國外的vps伺服器,原本是想在本地虛擬機器實驗的,一直連線超時,就換成了vp...