ip 访问正常,解析到此 ip 的域名却指向了 nginx 默认首页
背景环境
硬件:阿里云 2 核 4 G 轻量应用级服务器
操作系统:Ubuntu 18.04.6 LTS
nginx version:nginx/1.14.0 (Ubuntu)
故障表现
域名成功解析到了 ip,此 ip 访问自己的应用正常,但是域名访问却指向了 nginx 的 index page。
原因剖析
首先必须了解该问题涉及到的 nginx 的相关知识。
nginx 相关配置 | 路径 |
---|---|
总配置文件 | /etc/nginx/nginx.conf |
nginx 配置的默认 server 配置文件 | /etc/nginx/sites-enabled/default |
我们自定义的 server 配置文件 | /etc/nginx/conf.d 下所有以 .conf 后缀的文件 |
后面两个路径可以在总配置文件中找到:
1 | include /etc/nginx/conf.d/*.conf; |
注意第二个路径是 sites-enabled 而不是 sites-available,这两者区别可自行 google,相关知识和本文问题无关。
nginx 默认的 server 配置文件如下:
1 | server { |
而当前的 ip 与之对应的自定义 server 配置如下:
1 |
|
可以自定义的 server_name 为 120.77.233.137,域名 kcool.top 访问时不会匹配到这个 server,就会交给 nginx 的 default_server 处理,也就到了 nginx 的 index page。
解决办法已经呼之欲出了。
解决办法
最好的解决办法是将域名 kcool.top 也加入我们自定义的 server_name 中,和现有的 ip 以空格分隔,即 :
1 | server_name kcool.top 120.77.233.137 |
不得不说很多教程说多个 server_name 以逗号分隔实在是太坑了。
还有一种办法是将总配置文件的下面这行注释掉:
1 | include /etc/nginx/sites-enabled/*; |
讲道理会 404 的,我也不知道为什么可行,有空再琢磨~
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BuyiXiao's Blog!
评论
ValineDisqus