聽了server_name匹配順序,而最重要的正則匹配自己卻一無所知,羞愧的想把它們全部塞到腦殼里充實自己,不過當前還是先聽師傅的先把地址記清楚吧。跟着師父邊走邊記。很快,小張便發現了不對勁,街上竟然有兩家的府衙門口都是wyc.com,怎么會有一模一樣的呢?根據師傅前面講的server_name匹配順序,這兩個一樣,后面的那個根本不會被匹配到的,是寫錯了嗎?還是備用的?小張疑惑的問。
“雖然他們server_name是一樣的,但是還有一個重要的標志端口號port,而他們的端口號並不一樣,接受的請求並不一樣,分工很明確”,老王解釋道。
小張:“那為什么我們的憑條沒有端口號呢?“
老王:”其實我們也是有的,只是根據http協議,默認的端口號是80,約定成俗,后面大家就默認不寫了。而https協議的端口默認是443。“
快走到街道終點,看到了一個年輕小伙子正一臉着急拿着憑條來問路,溝通之后才知道,這個小伙子叫小李,和自己來自同一個鄉,是剛入職的新手,可能是村民寫錯了server_name,找遍了全街也沒找到可以匹配去處理的府衙,真找不到只能回去再來一次了。雖然這路途遙遠,過程不易,但是抱怨無用,安撫了下他的情緒。老王看了下他的憑條wyc.com:8888,便准備告訴小張端口port的一個妙用。他們先來到了端口號為8888的三家門口,這三家server_name分別是wyc.xyx,wyc.abc,wyc.zzz都不能匹配。老王說,Nginx帝國已經考慮到了這個問題,如果在一個端口下所有的server_name都不能匹配,那么默認第一家就會處理。當然,有的端口也可能用default_server指令來明確某個府衙來處理都無法匹配的請求。而這三家中wyc.abc門口好像有default_server標志,你們只需要交給他就行。小李高興的將信件交了過去,拿到了回信,他們決定吃個飯一起回鄉。
如圖:wyc.com在端口8888沒有對應的server_name,匹配到了default_server內容
小張說原來端口號這么重要啊,甚至default_server都只是端口的一個屬性,我以后要看仔細些。老王說listen的port不僅可以設置default_server,還有其他的用法。雖然大部分人都寫的server_name,大家可以根據名字在行政街找到,但是也有人喜歡直接填寫地址,這樣就沒有server_name去對應了,如192.168.0.108:8888,這種時候,我們要根據地址和端口找到對應的部門,如果找不到依然去端口8888指定default_server 去處理就好了。