nginx配置: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块中,没有找到匹配的location, 匹配 location / {}, 如果没有 location / {}, 默认

返回 html/index.html文件,html目录为网站默认的根目录。


总结

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

你可能感兴趣的:(nginx,server_name)