1.当端口只对应一个server_name的时候,请求带不带Host都可以,带什么都可以。
2.当端口对应Server_name有多个的时候,请求不带host或者带的host不是某一个server_name的话,请求会到端口对应的第一个server中.
eg:
nginx conf如下:
server {
listen 21734;
server_name hyd;
location /{
echo $arg_a;
}
}
server {
listen 21734;
server_name localhost;
location /{
echo $arg_b;
}
}
curl -v "127.0.0.1:21734/test?a=aaaa&b=bbbb" 返回 aaaa
curl -v "127.0.0.1:21734/test?a=aaaa&b=bbbb" -H "Host:xxxx" 返回aaaa
curl -v "127.0.0.1:21734/test?a=aaaa&b=bbbb" -H "Host:localhost" 返回bbbb
可以从总结下只有header中的host为localhost的话,才会返回bbbb,
其他情况全部都是返回aaaa
如上是测试的结果。有问题请指出。
nginx conf server_name 学习
原文:http://www.cnblogs.com/datamining313/p/4711071.html