Nginx default server

很多人会错误地配置 default server,就像这样

server_name _;

然而这条指令的真实意思是没有匹配,只有在没有匹配到任何 server_name 的时候才有可能选择它,但是也不一定就会选择它。

Nginx 在没有匹配到的时候会选择第一个 server,因此 server 顺序很重要,如果配置成 _ 的 server 不是第一个,那么这个 server 就不会被选择。

由此可以看出,_ 不是默认服务器,仅仅是未匹配。

一般来说使用这个配置的服务器是写在 nginx.conf 里面的,而 include 指令写在这个 server 的后面,这样就保证了这个是第一个。

真正的 default server 应该采用如下配置,这样在没有匹配到的时候,不管顺序怎么样,都会选择这个 server。

listen 80 default_server;

参考 https://blog.gahooa.com/2013/08/21/nginx-how-to-specify-a-default-server/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个location配置块使用了多个 Nginx 模块...
    SkTj阅读 7,847评论 0 12
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • 配置运行Nginx服务器用户(组) 用于配置运行Nginx服务器用户(组)的指令是user,其语法格式为: use...
    吃瓜的东阅读 4,559评论 0 41
  • Nginx 的配置文件使用的就是一门微型的编程语言,许多真实世界里的 Nginx 配置文件其实就是一个一个的小程序...
    SkTj阅读 4,273评论 0 7
  • 生活在五线以下的城市,平时五千多的工资让自己的小日子过得很舒适,正常的开销外还能有不少的节余做想做的事,生...
    爱飞的火车阅读 288评论 0 0