進程運行的模型
當啟動nginx服務器時,系統會生成一個master進程和多個worker進程,所有worker子進程都是由master進程來生成。master進程不僅僅是會生成worker子進程還會對worker子進程進行監控和管理。
worker子進程會監控所有的用戶提交上來的請求,通過socket來監控,當有請求進來時,所以的worker子進程會去搶着來處理這個http請求,這裡隻可能有一個進程可以處理這個HTTP請求,其它進程會失敗,這就是所謂的“驚群”現象。
為了解決“驚群”現象,nginx會引入互斥鎖accept_mutex,隻有獲得accept_mutex的子進程才可以去處理客戶端提交的請求。
http請求運行過程nginx配置上下文
nginx配置文件的路徑:
/usr/local/nginx/conf/nginx.conf
nginx配置文件有幾大組成部分
worker_processes 1;
evente {
......
}
http {
server {
......
local {
......
}
}
}
nginx配置文件包括:
全局變量
events上下文
http上下文
server上下文必須是聲明在http上下文中
local上下文必須是聲明在server上下文中
常見配置項含義:
user:表示子進程用戶,master process是主進程,其它的子進程都是由master process來決定
worker_processes:表示當服務器啟動時,生成的子進程數,這個子進程數由CPU的核數來決定
error_log:表示錯誤日志文件位置
worker_connections:表示每個子進程最多允許的連接數
use eproll:表示IO複用模型
include mime.type:表示傳輸文件的格式
log_format:表示日志文件的格式
access_log:表示日志文件所在的位置
keepalive_timeout:表示長連接時,請求與請求之間的時間間隔
listen:表示監聽的端口
server_name:表示服務器的IP地址
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!