Nginx 通过 default_server 指令设置默认站点 – 21运维
通知: .-...

Nginx 通过 default_server 指令设置默认站点

nginx 21运维 3840浏览 0评论

默认站点,用nginx的朋友很多时候是通过nginx.conf设置server站点信息(默认),后边加载  vhost/*.conf 。

Nginx功能很强大,可以简单通过 default_server 指令设置默认站点,nginx.conf可以解放出来。比如:

server {
listen 80 default_server;
server_name www.21yunwei.com;
...
}

先看看上面这段配置,listen 指令后面有一个参数 default_server ,这个参数是在 0.8.21 版本以后才有的,而之前是 default 指令。这样以后所有指向到该服务器但未绑定的,都会访问当前www.21yunwei.com这个站点了。
server_name主机名匹配访问顺序:

Nginx 的虚拟主机是通 过HTTP请求中的Host值来找到对应的虚拟主机配置。如果找不到,那 Nginx 就会将请求送到指定了 default_server 的 节点来处理;如果没有指定为 default_server 的话,就跑到 localhost 的节点;如果没有 localhost 的节点,那只好 404 了。

另外你也可以指定对于没有匹配的 Host 值时,返回错误到客户端,这在现在国内用来处理未备案域名或恶意域名指向自己时非常有用,看看下面的配置:

server {
listen 80 default_server;
server_name _;
return 444;
}

通过返回444这个Nginx的非标准错误码来让Nginx断开与浏览器之间的连接。

转载请注明:21运维 » Nginx 通过 default_server 指令设置默认站点

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址