1, listen per_worker
listen 80;listen
8010 per_worker;
per_worker是說明當前的nginx除了建立在80號的埠上的偵聽之外,還需要建立8010開始的4個(由worker_processess配置決定的)埠。
然後,啟動nginx,再在命令列上測試
# sudo sbin/nginx -c your_demo_directory/nginx.conffor port in
80 ; do curl "
"; done
顯示類似如下,即檢測成功。
2, accept_mutex
假設你養了一百隻小雞,現在你有一粒糧食,那麼有兩種餵食方法:
可以看到此場景下,啟用accept_mutex相對更好一些,讓我們修改一下問題的場景,我不再只有一粒糧食,而是一盆糧食,怎麼辦?
此時如果仍然採用主動抓小雞過來塞糧食的做法就太低效了,一盆糧食不知何年何月才能喂完,大家可以設想一下幾十隻小雞排隊等著餵食時那種翹首以盼的情景。此時更好的方法是把這盆糧食直接撒到小雞中間,讓它們自己去搶,雖然這可能會造成一定程度的混亂,但是整體的效率無疑大大增強了。
實際上我們可以通過工具來測量 accept_mutex 對效能的影響,比如說 ngx-req-distr:
開啟 accept_mutex 時:
shell> ./ngx-req-distr -m `cat /path/to/nginx.pid`tracing
12970
12971
12972
12974 (/path/to/nginx)...
hit ctrl-c to end.
^cworker
12970: 0
reqs
worker
12971: 37
reqs
worker
12972: 127
reqs
worker
12974: 3 reqs
關閉 accept_mutex 時:
shell> ./ngx-req-distr -m `cat /path/to/nginx.pid`tracing
20433
20434
20435
20436 (/path/to/nginx)...
hit ctrl-c to end.
^cworker
20433: 75
reqs
worker
20434: 32
reqs
worker
20435: 29
reqs
worker
20436: 44 reqs
明顯可以看出,同開啟 accept_mutex 相比,關閉 accept_mutex 的時候,請求在多個 worker 間的分配更均衡了
ref :
nginx常用配置
官檔 nginx的負載均衡主要依賴這個模組 ngx http upstream module 1 安裝好nginx 192.168.1.111 2 修改egrep v nginx.conf.default nginx.conf 對其進行修改 訪問server name的時候,會找listen埠,所有...
Nginx常用配置
允許跨域 add header access control allow origin 配置 的使用者訪問認證 生成密碼檔案 htpasswd b c sitepasswd pigt password 配置訪問授權 auth basic input you user name and passwor...
nginx常用配置
其主要分為幾個模組 全域性快從開始到events塊之間的一部分內容,其作用域為全域性作用域 events塊 主要負責nginx伺服器與使用者的網路連線 常用設定 是否開啟多work process下的網路連線進行序列化 師傅允許接收多個網路連線 選取哪種驅動模型連線請求 process 最大連線數 ...