server_name指令,在nginx中起的是虚拟主机里的“以域名区分的虚拟主机的作用”
先说一下虚拟主机的使用方法,有三种:ip、port、域名
ip和port不用说,ip就是拿ip解析区分,用虚拟ip实现;port就是ip后面加port,来实现;
域名就比较好用了,直接使用请求的http头部来区分,既不用写ip,也不用写port,直接用server_name来区分;
例子如下:
虚拟主机test1
server{
server_name test1.com;
root /var/www1/;
………
}
虚拟主机test2
server{
server_name test2.com;
root /var/www2/;
………
}
这时,如果DNS解析没有问题的话,(通过改HOSTS实现也可以),你就可以访问test1.com和test2.com了,就像两个不同的网站,而不用像以前一样,拿端口来区分。