运行 nginx 的 Raspberry pi 对 localhost 响应 200,通过主机名访问时响应 404

运行 nginx 的 Raspberry pi 对 localhost 响应 200,通过主机名访问时响应 404

我已经在树莓派上安装了 nginx。

服务器配置:

server {
    listen 80;
    listen [::]:80;

    root /home/pi/www;

    index index.html index.htm;

    server_name _;

    location / {
        # return 418 on not found. non standard but a useful test
        try_files $uri $uri/ =418;
    }
}

通过 localhost 卷曲,我得到了响应。通过主机名卷曲,我得到了 404。访问日志中没有后者的条目,只有前者:

pi@pik3s $ hostname
pik3s
pi@pik3s $ curl localhost
<h1>HELLO</h1>
pi@pik3s $ curl pik3s
404 page not found
pi@pik3s $ tail /var/log/nginx/access.log
::1 - - [22/Jun/2021:13:51:32 +0100] "GET / HTTP/1.1" 200 15 "-" "curl/7.64.0"

我不明白 404 从何而来,因为我作为测试返回 418 表示未找到,而 404 似乎根本没有影响 nginx。

更新日期:2021-06-23:我将错误日志设置为“调试”,其内容如下:

$ cat /var/log/nginx/error.log
2021/06/23 10:53:00 [debug] 15325#15325: epoll add event: fd:6 op:1 ev:10000001
2021/06/23 10:53:00 [debug] 15325#15325: epoll add event: fd:7 op:1 ev:10000001
2021/06/23 10:53:00 [debug] 15326#15326: epoll add event: fd:6 op:1 ev:10000001
2021/06/23 10:53:00 [debug] 15326#15326: epoll add event: fd:7 op:1 ev:10000001
2021/06/23 10:53:00 [debug] 15328#15328: epoll add event: fd:6 op:1 ev:10000001
2021/06/23 10:53:00 [debug] 15328#15328: epoll add event: fd:7 op:1 ev:10000001
2021/06/23 10:53:00 [debug] 15330#15330: epoll add event: fd:6 op:1 ev:10000001
2021/06/23 10:53:00 [debug] 15330#15330: epoll add event: fd:7 op:1 ev:10000001

即,请求似乎在到达 nginx 之前就停止了。

更新日期:2021-06-25:检查curl -vlocalhost返回,Server: nginx/1.14.2pik3s返回否Server

我意识到/etc/hosts只能将 pik3s 解析为 IPv4 地址,因此我将其添加::1为替代方案,现在它可以工作了(在本地机器上)。

所以这表明 nginx 仅在监听 IPv6。

$ sudo netstat -ltnp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      26923/nginx: master 
tcp6       0      0 :::80                   :::*                    LISTEN      26923/nginx: master 

但它正在听。

相关内容