转自:https://blog.csdn.net/qq_40737025/article/details/85053164
本人在学习nginx的时候被server_name的意义困扰了很久。又是查资料,又是请教人。最后还是自己测试出来的。
你搜到这篇文章说明你已经经过了基本的配置,但是还不懂其中的含义。
server name 为虚拟服务器的识别标志,匹配到特定的server块,转发到对应的应用服务器中去。
本文主要是解释server_name的意义,文章最后会解释server在整个访问请求的流程;请注意文中红色文字;
先上一段配置
server {
listen ip:端口;
# 当listen出现了ip时,server_name就失去了意义。所以不配置也罢了。
#server_name 域名;
access_log 日志地址1;
error_log 日志地址2;
location / {
root /data/www/151;
index index.html index.htm;
}
}
客户端通过域名访问服务器时会将域名与被解析的ip一同放在请求中。当请求到了nginx中时。nginx会先去匹配ip,如果listen中没有找到对应的ip,就会通过域名进行匹配,匹配成功以后,再匹配端口。当这三步完成,就会找到对应的server的location对应的资源。
更详细的内容见,https://blog.csdn.net/qq_40737025/article/details/85053164