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