【Nginx】Nginx認(rèn)識(shí)、安裝和案例
1. Nginx簡(jiǎn)介
Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,以及電子郵件代理服務(wù)器。
特點(diǎn):
占用內(nèi)存少。
并發(fā)能力強(qiáng),報(bào)告表明能支持高達(dá)50000個(gè)并發(fā)連接數(shù)。
支持熱部署,能夠在不間斷服務(wù)的情況下,對(duì)軟件版本進(jìn)行升級(jí)。
反向代理
負(fù)載均衡
動(dòng)靜分離
反向代理
nginx也支持正向代理,正向代理就是客戶端通過(guò)配置代理服務(wù)器,達(dá)到訪問(wèn)其他網(wǎng)絡(luò)的目的。我們常在計(jì)算機(jī)或?yàn)g覽器中配置的代理就屬于正向代理。
反向代理就是代理服務(wù)器收集客戶端的請(qǐng)求,然后發(fā)送給具體的服務(wù)器獲取資源,然后由代理服務(wù)器將網(wǎng)頁(yè)資源返回給客戶端??蛻舳瞬⒉恍枰勒嬲姆?wù)器地址是什么,只需要知道反向代理服務(wù)器的地址即可訪問(wèn)目標(biāo)資源。
負(fù)載均衡
最原始的請(qǐng)求模式是:客戶端向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)后,返回給客戶端,在請(qǐng)求量少的時(shí)候這個(gè)請(qǐng)求模式還是可以的,當(dāng)請(qǐng)求并發(fā)量增大之后,這種請(qǐng)求模式就不能滿足客戶及時(shí)響應(yīng)的要求了,甚至把服務(wù)器給搞崩也是有可能的。那怎么解決呢,目前我知道的有兩種方案:
升級(jí)硬件。把存儲(chǔ)、內(nèi)存、CPU等升級(jí)為性能更好的,同時(shí)這也意味著成本急劇增加。
上面的問(wèn)題主要在于請(qǐng)求量非常大怎么處理??梢远喔銕着_(tái)服務(wù)器來(lái)消化大批量的請(qǐng)求,Nginx正好可以做到這一點(diǎn),將不同的請(qǐng)求分發(fā)給不同的服務(wù)器,減少一臺(tái)服務(wù)器的壓力,這個(gè)處理過(guò)程就叫負(fù)載均衡。
動(dòng)靜分離
將動(dòng)態(tài)資源和靜態(tài)資源放在不同的服務(wù)器上,Nginx可以實(shí)現(xiàn)如下功能:在客戶端請(qǐng)求資源時(shí),動(dòng)態(tài)資源從動(dòng)態(tài)資源服務(wù)器上獲取,靜態(tài)資源從靜態(tài)資源服務(wù)器上獲取。這樣可以減小一臺(tái)服務(wù)器的壓力。這個(gè)過(guò)程也叫動(dòng)靜分離。
2. Nginx安裝
先略,后續(xù)補(bǔ)充...
3. Nginx常用命令
4. Nginx配置文件
Nginx配置文件由3部分組成:
全局塊
主要配置一些影響nginx服務(wù)器整體運(yùn)行的配置指令。主要包括配置運(yùn)行Nginx服務(wù)器的用戶(組)、允許生成的worker process數(shù),進(jìn)程PID存放路徑、日志存放路徑和類型以及配置文件的引入等。
events塊
這部分配置對(duì)Nginx性能影響大,實(shí)際中靈活配置。涉及的指令主要影響Nginx服務(wù)器與用戶的網(wǎng)絡(luò)連接,常用的設(shè)置包括是否開啟對(duì)多work process下的網(wǎng)絡(luò)連接進(jìn)行序列化,是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接,選取哪種事件驅(qū)動(dòng)模型來(lái)處理連接請(qǐng)求,每個(gè)work process可以同時(shí)支持的最大連接數(shù)等。
http塊
這一塊改動(dòng)頻繁,反向代理、負(fù)載均衡、動(dòng)靜分離、緩存和日志定義等絕大多數(shù)功能和第三方模塊都會(huì)在這個(gè)塊中修改配置。http塊里又包含http全局塊、server塊:
http塊/http全局塊
http全局塊配置的指令包括文件引入、MIME-TYPE定義、日志自定義、連接超時(shí)時(shí)間、單鏈接請(qǐng)求數(shù)上限等。
http塊/server塊
server塊和虛擬主機(jī)有密切聯(lián)系,虛擬主機(jī)從用戶角度看,和一臺(tái)獨(dú)立的硬件主機(jī)是完全一樣的,該技術(shù)的產(chǎn)生是為了節(jié)省互聯(lián)網(wǎng)服務(wù)器硬件成本。
每個(gè)http塊可以包括多個(gè)server塊,而每個(gè)server塊就相當(dāng)于一個(gè)虛擬主機(jī)。
每個(gè)server塊也分為全局server塊,以及可以同時(shí)包含多個(gè)location塊。
http塊/server塊/server全局塊
本虛擬主機(jī)的監(jiān)聽配置和本虛擬主機(jī)的名稱或IP配置。
http塊/server塊/location塊
一個(gè)server塊可以配置多個(gè)location塊。主要作用匹配不同的URL請(qǐng)求,進(jìn)而對(duì)請(qǐng)求做不同的處理和響應(yīng)。
參考資料:
nginx官方文檔:https://nginx.org/en/docs/install.html
理解 nginx 的location 塊匹配規(guī)則:?https://www.cnblogs.com/fengfengyang/p/15550300.html