nginx做http服务器时,同一个域名下可以部署多个项目,即同一个root目录下可以有多个项目目录;
配置文件中的server块server_name项用于配置域名(字符串或正则匹配),root项配置多个项目的上级目录;
访问项目时,地址为:域名/项目目录名/资源名,此时多个项目就理解为同一个网站下的不同模块,项目名就是URL,nginx根据项目名查找不同项目的资源;
犯错记录:对server_name配置项理解错误,配置了项目名,导致多个server块全部未匹配域名,server_name的匹配规则为:
1.完全匹配字符串
2.通配符在前,如*.xxx.com
3.通配符在后的,如xxx.xxx.*
4.正则匹配
5.未找到匹配server_name时,使用listen项有default,default_server配置的server块
6.最后匹配端口一致的第一个server块
我就是走的第6个匹配规则,导致后面项目的配置全部无用,但可以正常访问资源,因为他们在同一个根目录下,根据项目名,nginx依然可以找到资源