IP 地址服务器块超过了域服务器块

Ip address server block is over ridding domain server block

我有一个 nginx 服务器,我有一个侦听端口 80 的域。我还想设置如果用户输入服务器的 ip 地址,他们会得到这个静态 html 页面。

现在我的 IP 地址服务器块是

listen XXX.XXX.XXX.XXX:80

正在覆盖域服务器块,我该如何解决这个问题?我尝试使用 default_server 但我认为放置一个 if 语句是最好的。任何想法表示赞赏。

不要混淆 listen 指令与 server_name

listen 是使 nginx 监听某些端口和接口的网络级指令,而 server_name 是关于 Host header 浏览器将发送的内容。

所以你应该使用

而不是 listen 12.34.56.78:80
listen 80;
server_name 12.34.56.78;

也值得一读 how nginx process request