NGINX 配置 root, index 问题

2019-11-26 13:04:52 +08:00
 aoscici2000

配置如下:


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 / , 程序里我也压根没配 / 的路由

4095 次点击
所在节点    NGINX
12 条回复
eason1874
2019-11-26 14:08:47 +08:00
你说的程序日志是指什么日志?

如果是指 Nginx 那正常,按你这段配置来看,只要你没关日志那么访问 / 也会写入到 access_log。如果你是说 5000 端口程序的日志,那肯定是你搞错了,可能是你改了 Nginx 配置文件没重载还是用的旧配置。
markgor
2019-11-26 14:17:43 +08:00
@eason1874 LZ 意思是 GET / 默認讀取了 /www/pages/index.html,這個文件也是存在的,但是為什麼 nginx 會有 404 的錯誤日誌
eason1874
2019-11-26 14:25:35 +08:00
@markgor #2 不确定楼主是什么意思,看着像是你说的这个意思,也有点像是说后端程序也接收到 / 的请求。
aoscici2000
2019-11-26 15:57:53 +08:00
@eason1874 就是 5000 端口的程序日志记录了下来,所以我才纳闷
eason1874
2019-11-26 16:07:32 +08:00
@aoscici2000 #4 如果你确认 Nginx 这个配置已经生效,那 / 请求肯定不是 Nginx 这边转发过去的,你可以排查一下其他请求来源,比如你在浏览器打开过后端链接的话,浏览器为了拿个缩略图有可能再向后端发送一个请求。
ragnaroks
2019-11-26 17:14:02 +08:00
5000 盲猜刀奶扩,我复制你的配置,正常返回 index.html 的内容.

感觉可能是 /www/pages 这个路径,你运行 nginx 的用户没有权限
Ionstorm
2019-11-26 17:18:48 +08:00
没有 SSL 证书?
dppd
2019-11-26 17:43:50 +08:00
建议查看下 nginx 日志...别看你程序报什么鬼了
aoscici2000
2019-11-26 18:43:40 +08:00
@dppd ngnix 日志也没什么毛病, 其实运行也很正常, 我只是非常非常好奇程序为什么会记录这条日志, 因为我的理解是只有 /api 的请求才会去到程序那里处理...
dorothyREN
2019-11-26 22:44:37 +08:00
nginx 需要检测后端服务状态的吧。location 没指定 index 和 root 的话好像是会继承上一级的
MonoLogueChi
2019-11-26 23:27:31 +08:00
盲猜是 .net 程序,你看看是不是有人直接访问了你的 5000 端口,可以尝试直接在防火墙关闭 5000 端口,或者让后端程序只监听本地回环,再或者使用 unix 套接字代替 TCP 回环测试一下
cnrting
2019-11-27 08:23:43 +08:00
应该是文件所在目录没有权限,我记得好像我也遇到过

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/623232

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX