主nginx和子nginx-------域名-端口-解答
想象一下Nginx是一个接待员,每个端口就像接待员的一个电话线,而server_name就像是客户拨打的不同号码。
- 当你在Nginx配置文件里设定端口(比如80或81),就相当于告诉接待员:“请守在这一条电话线上接听来电。”
- 如果只有一个电话线(端口),但是你告诉接待员两个不同的号码(server_name)都可以接通这条电话线,那接待员就会很困惑,因为他不知道接到电话时该按哪个号码来处理业务。
所以,在Nginx中,一个端口可以被多个server块共享,但前提是这些server块通过server_name(也就是类似于电话号码的东西)来区分不同的网站或服务。也就是说,你可以设置多个server块监听同一端口(如80或81),但必须保证server_name不同,这样Nginx才能根据访问的域名正确地把请求转发给对应的server块处理。
至于主配置文件和子配置文件的关系,它们只是组织配置的一种方式,并不影响端口和server_name的逻辑。重要的是在整个Nginx配置中,不能有多个server块不加区分地监听同一个端口。
区别
端口:可以被重复定义 --(listen)
域名:多个域名可设置一个端口,但域名不能重复 ---(server name)