nginx主模块指令
daemon
語法:?daemon on | off
缺省值:?on
若為on則以守護進程方式執行,默認為on,否則控制終端結束后,nginx進程也隨終端的結束而結束。該選項主要用于開發調試,生產環境不建議使用。
include
語法:?include file | *
缺省值:?none
用于配置文件的包含,與apache的include命令類似。include可以減少nginx主配置文件中的內容,推薦使用。還可以進行全局包含,例如包含一個木下的所有.conf文件?
include test/*.conf
lock_file
語法:?lock_file file
缺省值:?compile-time option
指定nginx采用文件加鎖時加鎖的文件。nginx中接收連接需要用到linux上的accpet系統調用,該操作為原子操作,通過互斥鎖實現, gcc, Intel C++, SunPro C++ 編譯在?i386, amd64, sparc64, 和ppc64平臺上的nginx采用原子指令實現互斥,在其他平臺上則使用文件加鎖方式實現。
master_process
語法:?master_process on | off
缺省值:?on
是否開啟master進程,與daemon指令一樣都用于調試,不建議生產環境使用。
pid
語法:?pid file
缺省值:?compile-time option?Example:
nginx啟動后,會將master進程的id寫入到一個文件中,該指令指定了該文件的路徑。
ssl_engine
語法:?ssl_engine engine
缺省值:?system dependent
指定使用的openssl引擎。可以通過openssl engine -t獲得系統目前使用的openssl引擎
timer_resolution
語法:?timer_resolution t
缺省值:?none
例子timer_resolution 100ms;
指定時間精度,默認nginx在kevent(), epoll, /dev/poll, select(), poll()等調用返回時會調用gettimeofday()函數獲取時間,如果在日志中想精確的顯示時間可以通過該指令設置
user
語法:?user user [group]
缺省值:?nobody?
指定nginx worker進程運行的用戶,默認為nobody, nobody是linux上一個權限很低的系統用戶。
worker_cpu_affinity
語法:?worker_cpu_affinity cpumask [cpumask...]
缺省值:?none
例子,給每個worker進程綁定一個cpu
worker_processes 4;
workcpu_ affinity 0001 0010 0100 1000;
該選項可以綁定worker進程和CPU.實際上底層通過調用sched_setaffinity()系統調用實現
worker_priority
語法:?worker_priority [-] number
缺省值:?on
是否給worker進程分配優先值
worker_processes
語法:?worker_processes number
缺省值:?1
nginx中可以有多個worker進程,通常為了1.更好的發揮多核CPU性能
2.減少磁盤I/O阻塞造成的延遲時間
3.減少單個進程調用select()/poll()使用的連接數,
說明:select(), poll()都是I/O復用接口,通過輪詢來獲取套接字上可讀或可寫的事件,執行速度和監聽的鏈接(即文件描述符)的數量呈線性增長,監聽的套接字越多,性能越差,因此select和poll監聽的套接字應盡可能的少,這里nginx通過把連接分配給多個進程來減少單個進程的監聽數。
worker_rlimit_nofile
語法:?worker_rlimit_nofile limit?缺省值:?'
指定worker進程打開的文件描述符的最大數量
working_directory
語法:?working_directory path?缺省值:?--prefix
指定nginx中worker進程的工作目錄,默認為nginx安裝目錄總結
以上是生活随笔為你收集整理的nginx主模块指令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx-rtmp源码概述
- 下一篇: 理解音视频 PTS 和 DTS