聽(tīng)了server_name匹配順序,而最重要的正則匹配自己卻一無(wú)所知,羞愧的想把它們?nèi)咳侥X殼里充實(shí)自己,不過(guò)當(dāng)前還是先聽(tīng)?zhēng)煾档南劝训刂酚浨宄伞8鴰煾高呑哌呌?。很快,小張便發(fā)現(xiàn)了不對(duì)勁,街上竟然有兩家的府衙門(mén)口都是wyc.com,怎么會(huì)有一模一樣的呢?根據(jù)師傅前面講的server_name匹配順序,這兩個(gè)一樣,后面的那個(gè)根本不會(huì)被匹配到的,是寫(xiě)錯(cuò)了嗎?還是備用的?小張疑惑的問(wèn)。
“雖然他們server_name是一樣的,但是還有一個(gè)重要的標(biāo)志端口號(hào)port,而他們的端口號(hào)并不一樣,接受的請(qǐng)求并不一樣,分工很明確”,老王解釋道。
小張:“那為什么我們的憑條沒(méi)有端口號(hào)呢?“
老王:”其實(shí)我們也是有的,只是根據(jù)http協(xié)議,默認(rèn)的端口號(hào)是80,約定成俗,后面大家就默認(rèn)不寫(xiě)了。而https協(xié)議的端口默認(rèn)是443?!?/p>
快走到街道終點(diǎn),看到了一個(gè)年輕小伙子正一臉著急拿著憑條來(lái)問(wèn)路,溝通之后才知道,這個(gè)小伙子叫小李,和自己來(lái)自同一個(gè)鄉(xiāng),是剛?cè)肼毜男率郑赡苁谴迕駥?xiě)錯(cuò)了server_name,找遍了全街也沒(méi)找到可以匹配去處理的府衙,真找不到只能回去再來(lái)一次了。雖然這路途遙遠(yuǎn),過(guò)程不易,但是抱怨無(wú)用,安撫了下他的情緒。老王看了下他的憑條wyc.com:8888,便準(zhǔn)備告訴小張端口port的一個(gè)妙用。他們先來(lái)到了端口號(hào)為8888的三家門(mén)口,這三家server_name分別是wyc.xyx,wyc.abc,wyc.zzz都不能匹配。老王說(shuō),Nginx帝國(guó)已經(jīng)考慮到了這個(gè)問(wèn)題,如果在一個(gè)端口下所有的server_name都不能匹配,那么默認(rèn)第一家就會(huì)處理。當(dāng)然,有的端口也可能用default_server指令來(lái)明確某個(gè)府衙來(lái)處理都無(wú)法匹配的請(qǐng)求。而這三家中wyc.abc門(mén)口好像有default_server標(biāo)志,你們只需要交給他就行。小李高興的將信件交了過(guò)去,拿到了回信,他們決定吃個(gè)飯一起回鄉(xiāng)。
如圖:wyc.com在端口8888沒(méi)有對(duì)應(yīng)的server_name,匹配到了default_server內(nèi)容
小張說(shuō)原來(lái)端口號(hào)這么重要啊,甚至default_server都只是端口的一個(gè)屬性,我以后要看仔細(xì)些。老王說(shuō)listen的port不僅可以設(shè)置default_server,還有其他的用法。雖然大部分人都寫(xiě)的server_name,大家可以根據(jù)名字在行政街找到,但是也有人喜歡直接填寫(xiě)地址,這樣就沒(méi)有server_name去對(duì)應(yīng)了,如192.168.0.108:8888,這種時(shí)候,我們要根據(jù)地址和端口找到對(duì)應(yīng)的部門(mén),如果找不到依然去端口8888指定default_server 去處理就好了。