三,nginx配置location
配置塊:server
詳情:location會嘗試根據使用者請求中的uri來匹配location的uri表示式,如果可以匹配,就選擇location塊中的配置來處理使用者請求。
示例:
四,nginx常規配置:
(一),定義環境變數:
語法:evn var|var=value
作用:使用者可以直接設定作業系統上的環境變數
舉例:evn testpath=/tmp;
(二),嵌入其他配置檔案
語法:include/path/file
作用:可以把其他配置檔案引入進來,路徑可以是絕對路徑,也可以時相對路徑。還可以含有萬用字元。
(三),pid檔案
語法:pid path/file;
預設:pid logs/nginx.pid;
作用:儲存master程序的pid檔案存放路徑。
(四),nginx worker程序執行的使用者和使用者組
語法:user username[groupname]
預設:user nobody nobody
作用:master程序fork出的程序在哪個使用者和使用者組下
(五),指定nginx worker程序可以開啟的最大控制代碼描述符個數
語法:worker_rlimit_nofile limit;
作用:設定乙個worker可以開啟的最大控制代碼數
(六),限制訊號佇列:
語法:worker_rlimit_sigpending limit;
作用:設定每個使用者發往nginx的訊號佇列的大小。也就是說,當某個使用者的訊號佇列滿了,這個使用者再傳送的訊號量就會被丟掉。
五,nginx高效能配置:
(一)nginx worker程序個數
語法:worker_processes number;
預設:worker_processes 1;
作用:在master_worker執行方式下,定義worker程序的個數。worker程序的數量會直接影響效能。每個worker都是單執行緒的程序,他會呼叫各個模組來實現各種功能。如果確定這些模組不會出現堵塞式呼叫,那麼程序數可以和cpu核心數一樣;反之,則稍少一些。
(二)繫結nginx worker程序到指定的cpu核心
語法:worker_cpu_affinity cpumask
作用:假設每個worker都是很繁忙的,如果多個程序都在搶同乙個cpu,那麼就會出現同步問題。反之,如果每個worker程序獨享乙個cpu,就實現了完全的併發。
舉例:worker_processes 4;
worker_cpu_affinity 1000 0100 0010 0001;
(三),ssl硬體加速
語法:ssl_engine device;
作用:如果伺服器上有ssl硬體加速裝置,那麼就可以進行配置以加快ssl協議的處理速度。使用者可以用openssl提供的命令來檢視是否有ssl硬體加速裝置:openssl engine -t
六,nginx事件配置
(一)是否開啟accept鎖
語法:accept_mutex [on/off];
預設:accept_mutex on;
作用:accept_mutex是nginx的負載均衡鎖。這把鎖可以讓多個worker程序輪流的,序列化的與新的客戶端建立tcp連線。accept鎖預設是開啟的,如果關閉它,那麼建立tcp連線的耗時會更短,但不利於負載均衡,因此不建議關閉。
(二)使用accept鎖後到真正建立連線之間的延遲時間
語法:accept_mutex_delay nms;
預設:accept_mutex_delay 500ms
作用:在使用accept鎖後,同一時間只有乙個worker程序能夠拿到accept鎖。這個accept鎖不是堵塞鎖,如果取不到會立刻返回。如果只有乙個worker程序試圖取鎖而沒有取到,他至少要等待accept_mutex_delay定義的時間才能再次試圖取鎖。
(三)批量建立新連線:
語法:multi_accept[on/off];
預設:multi_accept off;
作用:當事件模型有新連線時,盡可能的對本次排程中客戶端發起的所有tcp請求都建立連線。
(四)選擇事件模型:
語法:use[kqueue|rtsig|epoll|dev|poll|select|poll|]
作用:對於linux系統,可供選擇的事件驅動模型有:poll,select,epoll三種,一般來說,epoll是效能最高的。
(五)每個worker的最大連線數
語法:worker_connections number;
作用:定義每個worker程序可以同時處理的最大連線數。
Qzone 高效能 HTTPS 實踐
自從去年qq空間移動端頁面開始切換到https之後,頁面效能遇到了比較大的挑戰,https對頁面訪問速度帶來了比較大的影響,所以我們通過實踐總結了一些能夠提公升https頁面訪問速度的方法,這些資料都是我們和stgw的同事反覆實驗 多次分析所得到的,希望能夠減少大家對於全站啟用https的顧慮。我們...
效能最佳實踐 MongoDB索引
歡迎閱讀mongodb效能最佳實踐系列部落格的第三篇。在本系列中,我們將討論在大規模資料下實現高效能,需要在許多重要維度上進行考慮的關鍵因素,其中包括 根據我們在過去的15年裡為多個不同資料庫 商工作的經驗,可以肯定地說,如何定義合適的索引是技術支援團隊必須解決的首要效能問題。所以接下來會介紹一些有...
最佳實踐React效能優化
1 基本使用 使用方法 import react,from react import from utils const loadinghome dynamic import components home const loadinguser dynamic import components use...