1. master&worker
![nginx的原理與配置[Java培訓] nginx的原理與配置[Java培訓]](http://m.qzwxtv.cn/skin/default/image/lazy.gif)
2. master-workers的機制的好處
首先,對于每個worker進程來說,獨立的進程,不需要加鎖,所以省掉了鎖帶來的開銷,同時在編程以及問題查找時,也會方便很多。
其次,采用獨立的進程,可以讓互相之間不會影響,一個進程退出后,其它進程還在工作,服務(wù)不會中斷,master進程則很快啟動新的worker進程。當然,worker進程的異常退出,肯定是程序有bug了,異常退出,會導致當前worker上的所有請求失敗,不過不會影響到所有請求,所以降低了風險。
#設(shè)置worker數(shù)量。
worker_processes 4
#work綁定cpu(4 work綁定4cpu)。
worker_cpu_affinity 0001 0010 0100 1000
#work綁定cpu (4 work綁定8cpu中的4個) 。
worker_cpu_affinity 0000001 00000010 00000100 00001000
3.需要設(shè)置多少個worker
Nginx 同redis類似都采用了io多路復(fù)用機制,每個worker都是一個獨立的進程,但每個進程里只有一個主線程,通過異步非阻塞的方式來處理請求, 即使是千上萬個請求也不在話下。每個worker的線程可以把一個cpu的性能發(fā)揮到極致。
所以worker數(shù)和服務(wù)器的cpu數(shù)相等是最為適宜的。設(shè)少了會浪費cpu,設(shè)多了會造成cpu頻繁切換上下文帶來的損耗。
4.連接數(shù)worker_connection
這個值是表示每個worker進程所能建立連接的最大值,所以,一個nginx能建立的最大連接數(shù),應(yīng)該是worker_connections * worker_processes。當然,這里說的是最大連接數(shù),對于HTTP請求本地資源來說,能夠支持的最大并發(fā)數(shù)量是worker_connections * worker_processes,如果是支持http1.1的瀏覽器每次訪問要占兩個連接,所以普通的靜態(tài)訪問最大并發(fā)數(shù)是: worker_connections * worker_processes /2,而如果是HTTP作為反向代理來說,最大并發(fā)數(shù)量應(yīng)該是worker_connections * worker_processes/4。因為作為反向代理服務(wù)器,每個并發(fā)會建立與客戶端的連接和與后端服務(wù)的連接,會占用兩個連接。
5.nginx.conf 結(jié)構(gòu)
![nginx的原理與配置[Java培訓] nginx的原理與配置[Java培訓]](http://m.qzwxtv.cn/skin/default/image/lazy.gif)
![nginx的原理與配置[Java培訓] nginx的原理與配置[Java培訓]](http://m.qzwxtv.cn/skin/default/image/lazy.gif)
相關(guān): 現(xiàn)在參加web前端培訓,后期好找工作嗎——Java培訓學習以后就業(yè)會很好嗎
本文鏈接:
本文章“nginx的原理與配置[Java培訓]”已幫助 165 人
免責聲明:本信息由用戶發(fā)布,本站不承擔本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓機構(gòu)》培訓課程》學習資訊》課程優(yōu)惠》課程開班》學校地址等機構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579