在大多數情況下,乙個常規安裝的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_timeout和client_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...