服务器问答

NGINX 配置 root, index 问题
0
2021-05-19 21:15:53
idczone

配置如下:


server {
  大带宽服务器  listen       443 ssl;
    server_name  host;
    index        index.html;
    root         /www/pages;
        
    location /api {
        proxy_pass http://127.0.0.1:5000/api;
    }
}

这里按我理解的意思难道不是访问首页的时候, 直接由 ngnix 返回一个静态页就完事,不需要程序介入的吗?

但程序的日志却记录了 404 GET / , 程序里我也压根没配 / 的路由


你说的程序日志是指什么日志?
如果是指 Nginx 那正常,按你这段配置来看,只要你没关日志那么访问 / 也会写入到 access_log。如果你是说 5000 端口程序的日志,那肯定是你搞错了,可能是你改了 Nginx 配置文件没重载还是用的旧配置。

LZ 意思是 GET / 默認讀取了 /www/pages/index.html,這個文件也是存在的,但是為什麼 nginx 會有 404 的錯誤日誌

不确定楼主是什么意思,看着像是你说的这个意思,也有点像是说后端程序也接收到 / 的请求。

就是 5000 端口的程序日志记录了下来,所以我才纳闷

如果你确认 Nginx 这个配置已经生效,那 / 请求肯定不是 Nginx 这边转发过去的,你可以排查一下其他请求来源,比如你在浏览器打开过后端链接的话,浏览器为了拿个缩略图有可能再向后端发送一个请求。

5000 盲猜刀奶扩,我复制你的配置,正常返回 index.html 的内容.
感觉可能是 /www/pages 这个路径,你运行 nginx 的用户没有权限

没有 SSL 证书?

建议查看下 nginx 日志...别看你程序报什么鬼了

ngnix 日志也没什么毛病, 其实运行也很正常, 我只是非常非常好奇程序为什么会记录这条日志, 因为我的理解是只有 /api 的请求才会去到程序那里处理...

nginx 需要检测后端服务状态的吧。location 没指定 index 和 root 的话好像是会继承上一级的

盲猜是 .net 程序,你看看是不是有人直接访问了你的 5000 端口,可以尝试直接在防火墙关闭 5000 端口,或者让后端程序只监听本地回环,再或者使用 unix 套接字代替 TCP 回环测试一下

应该是文件所在目录没有权限,我记得好像我也遇到过

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服