nginx配置:server_name的作用

 

 


前言

终于理解了server_name

一、server_name是什么?

server_name就是访问部署了nginx那台服务器的域名、ip、localhost。(一个机器可以有多个域名,server_name可以配置不同的域名)

server {    
        listen     8088;    
        #定义使用 www.nginx.cn访问
        server_name  www.aa.com;      

        location = /50x.html {  
            root   html;  
        }  
    }  
    
server {    
        listen     8088;    
        #定义使用 www.nginx.cn访问
        server_name  www.bb.com;      

        location = /50x.html {  
            root   html;  
        }  
    }

nginx里面的server模块可以配置相同的端口,然后这里会根据不同的域名,跳转到不同的server模块中

二、匹配优先级

server_name与host匹配优先级如下:

1、完全匹配

2、通配符在前的,如*.test.com

3、在后的,如www.test.*

4、正则匹配,如~^\.www\.test\.com$

如果都不匹配

1、优先选择listen配置项后有default或default_server的

2、找到匹配listen端口的第一个server块

总结

server name 为虚拟服务器的识别路径。因此不同的域名会通过请求头中的HOST字段,匹配到特定的server块,转发到对应的应用服务器中去。

 
posted @ 2023-04-24 10:31  甜菜波波  阅读(2536)  评论(0编辑  收藏  举报