Nginx優化(2)
阿新 • • 發佈:2019-01-08
緩存 文件的 分配 必須 功能 get 讀取文件 首部 pen 配置文件:
main配置段
http {
}
main配置段
http {
}
配置指令要以分號結尾,語法格式: directive value1 [value2...]; 支持使用變量: 模塊內置變量 自定義變量 set var_name value 主配置段的指令的類別: 用於調試、定位問題 正常運行必備的配置 優化性能的配置 事件相關的配置 正常運行的必備配置: 1、user USERNAME [GROUPNAME]; 指定運行worker進程的用戶 和組,例如: user nginx nginx;s 2、pid /path/to/pid_file; 指定nginx的pid文件; 3、worker_rlimit_nofile #; 指定一個worker進程所能夠打開的最大文件句柄數; 4、worker_rlimit_sigpending #; 指定每個用戶能夠發往worker的信號的數量; 優化性能相關的配置: 1、worker_processes #: worker線程的個數;通常應該為物理CPU核心個數減1; 2、worker_cpu_affinity cpumask ...; 優點:提升緩存的命中率; context switch:會產生CPU的不必要的消耗 綁定worker進程至指定的CPU上; CPUMASK 0001 0010 0100 1000 例如: worker_cpu_affinity 00000001 00000010 00000100; 3、timer_resolution t; 計時器解析度:降低此值,可減少gettimeofday() 系統調用的次數。 gettimeofday(); 4、worker_priority nice; 指明worker進程的nice值 -20, 19 100, 139 事件相關的配置: 1、accept_mutex [on|off] master調度用戶請求至各worker進程時使用的負載均衡鎖:on表示能讓多個worker輪流地、序列化地去響應新請求; 內部調用用戶 請求至各worker時用的負載均衡鎖;打開時表示能讓多個worker輪流地、序列化地與響應新請求; 2、lock_file /path/to/lock_file; accept-mutex用到的鎖文件路徑; 3、accept_mutex_delay #ms; 4、use [epoll|rgsig|select|poll]; 定義使用的事件模型;建議讓Nginx自動選擇; 5、worker_connections #; 每個worker進程所能夠響應的最大並發請求數; worker_connections * work_processes 用於調試、定位問題: 必須安裝--with-debug 1、daemon [off|on] 是否以守護進程方式啟動nginx; 2、master_process on|off; 是否以master/worker模型來運行nginx; 調試時可以設置為off; 3、error_log /path/to/error_log level; 錯誤日誌文件及其級別;出於調試的目的,可以使用debug級別,但此級別只有在編譯nginx時使用了--with-debug選項才有效; 若要使用debug級別,需要在編譯ngnix時使用--with-debug選項;
對內存或磁盤資源進行分配
1、client_body_in_file_only on|clean|off;
請求報文的body部分是否可暫存於磁盤;on表示允許,並且即使請求結束,也不會刪除暫存的內容;clean表示會刪除;off不允許暫存;
2、client_body_in_single_buffer on|off 3、client_body_buffer_size size; 4、client_body_temp_path DIR [level1 [level2 [level3 [level4]]]] 例如:client_body_temp_path /var/tmp/nginx/client 1 2 5、client_header_buffer_size size: MIME類型相關的配置: 1、types {} 定義MIME types至文件的擴展名; types { text/html .html; image/jpeg .jpg; } 2、default_type MIME-TYPE; 文件操作優化相關的配置: 1、sendfile on|off; 2、aio on|off; 3、directio size|off; 是否使用O_DIRECT選項去請求讀取文件;與sendfile功能互斥; 4、open_file_cache max=N[inactive=time] | off; nginx可以緩存以下三種信息: (1) 文件句柄、文件大小和最近一次修改時間; (2) 打開目錄的目錄結構; (3) 沒有找到的或者沒有權限操作的文件的相關信息; max=N表示可緩存的最大條目上限;一旦到達上限,則會使用LRU從緩存中刪除最近最少使用的條目; inactive=time: 在inactive指定的時長內沒有被訪問過的緩存條目就會淘汰; 5、open_file_cache_errors on|off; 是否緩存在文件緩存中緩存打開文件時出現找不到路徑,沒有權限等的錯誤信息; 6、open_file_cache_min_uses time; 每隔多久檢查一次緩存中緩存條目的有效性;默認60s;
基於gzip實現響應報文壓縮:
定制響應首部
add_header name value [always];
expires
Nginx優化(2)