我已经在树莓派上安装了 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 -v
并localhost
返回,Server: nginx/1.14.2
而pik3s
返回否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
但它正在听。