nginx啟動(dòng)以及基礎(chǔ)原理
nginx啟動(dòng)
找到自動(dòng)啟動(dòng)的腳本文件 centos 目錄為 /etc/rc.d/rc.local 在末尾添加
nginx的啟動(dòng)命令 (/usr/local/nginx/sbin/nginx) 其中/usr/local/為nginx的安裝目錄
基本原理
nginx在啟動(dòng)后,在unix系統(tǒng)中會(huì)以daemon的方式在后臺(tái)運(yùn)行,后臺(tái)進(jìn)程包含一個(gè)master進(jìn)程和多個(gè)worker進(jìn)程。我們也可以手動(dòng)地關(guān)掉后臺(tái)模式,讓nginx在前臺(tái)運(yùn)行,并且通過(guò)配置讓nginx取消master進(jìn)程,從而可以使nginx以單進(jìn)程方式運(yùn)行。很顯然,生產(chǎn)環(huán)境下我們肯定不會(huì)這么做,所以關(guān)閉后臺(tái)模式,一般是用來(lái)調(diào)試用的,在后面的章節(jié)里面,我們會(huì)詳細(xì)地講解如何調(diào)試nginx。所以,我們可以看到,nginx是以多進(jìn)程的方式來(lái)工作的,當(dāng)然nginx也是支持多線程的方式的,只是我們主流的方式還是多進(jìn)程的方式,也是nginx的默認(rèn)方式。nginx采用多進(jìn)程的方式有諸多好處。
nginx采用這種進(jìn)程模型有什么好處呢?當(dāng)然,好處肯定會(huì)很多了。首先,對(duì)于每個(gè)worker進(jìn)程來(lái)說(shuō),獨(dú)立的進(jìn)程,不需要加鎖,所以省掉了鎖帶來(lái)的開(kāi)銷,同時(shí)在編程以及問(wèn)題查找時(shí),也會(huì)方便很多。其次,采用獨(dú)立的進(jìn)程,可以讓互相之間不會(huì)影響,一個(gè)進(jìn)程退出后,其它進(jìn)程還在工作,服務(wù)不會(huì)中斷,master進(jìn)程則很快啟動(dòng)新的worker進(jìn)程。當(dāng)然,worker進(jìn)程的異常退出,肯定是程序有bug了,異常退出,會(huì)導(dǎo)致當(dāng)前worker上的所有請(qǐng)求失敗,不過(guò)不會(huì)影響到所有請(qǐng)求,所以降低了風(fēng)險(xiǎn)。當(dāng)然,好處還有很多,大家可以慢慢體會(huì)。
負(fù)載均衡
客戶端發(fā)送多個(gè)請(qǐng)求到服務(wù)器,服務(wù)器處理請(qǐng)求,有些可能要訪問(wèn)數(shù)據(jù)庫(kù),服務(wù)器處理完畢后再將結(jié)果返回客戶端。
這種架構(gòu)模式單一,適合并發(fā)請(qǐng)求少的情況,但并發(fā)量大的時(shí)候如何解決?
首先可能想到升級(jí)服務(wù)器配置,但硬件的性能提升不能滿足日益增長(zhǎng)的需求,此時(shí)想到服務(wù)器集群,增加服務(wù)器數(shù)量,然后將原先請(qǐng)求單個(gè)服務(wù)器的情況改為將請(qǐng)求分發(fā)到多個(gè)服務(wù)器上,將負(fù)載分發(fā)到多個(gè)服務(wù)器上。
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科