我通过包含 conf.d/*.conf 设置了以下两个服务器指令。当我通过公共的外部 IP 地址导航到服务器时,它似乎与 127.0.0.1 的服务器匹配,因为条目被添加到 localhost.access_log 文件中。我希望这只会在通过 localhost 访问时发生。我希望从外部 IP 匹配 .host.tldserver_name
指令或default_server
参数。
我需要确保如何加载 conf 文件的顺序吗?为什么127.0.0.1上的监听会这样匹配?它是空的第二个位置指令吗?
server {
listen 127.0.0.1;
server_name localhost;
access_log /var/log/nginx/localhost.access_log main;
error_log /var/log/nginx/localhost.error_log info;
root /var/www/localhost/htdocs;
}
server {
listen 80 default_server;
server_name .host.tld;
access_log /var/log/nginx/host.access_log main;
error_log /var/log/nginx/host.error_log info;
root /var/www/host/htdocs;
location = / {
index index.php index.html;
}
location / {
}
}
将两个
listen
指令更改为80
并将127.0.0.1
名称添加到server_name
段的localhost
修复它: