听了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 去处理就好了。