V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
aoscici2000
V2EX  ›  NGINX

NGINX 配置 root, index 问题

  •  
  •   aoscici2000 · 2019-11-26 13:04:52 +08:00 · 4104 次点击
    这是一个创建于 1858 天前的主题,其中的信息可能已经有所发展或是发生改变。

    配置如下:

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

    12 条回复    2019-11-27 08:23:43 +08:00
    eason1874
        1
    eason1874  
       2019-11-26 14:08:47 +08:00
    你说的程序日志是指什么日志?

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

    感觉可能是 /www/pages 这个路径,你运行 nginx 的用户没有权限
    Ionstorm
        7
    Ionstorm  
       2019-11-26 17:18:48 +08:00
    没有 SSL 证书?
    dppd
        8
    dppd  
       2019-11-26 17:43:50 +08:00
    建议查看下 nginx 日志...别看你程序报什么鬼了
    aoscici2000
        9
    aoscici2000  
    OP
       2019-11-26 18:43:40 +08:00
    @dppd ngnix 日志也没什么毛病, 其实运行也很正常, 我只是非常非常好奇程序为什么会记录这条日志, 因为我的理解是只有 /api 的请求才会去到程序那里处理...
    dorothyREN
        10
    dorothyREN  
       2019-11-26 22:44:37 +08:00
    nginx 需要检测后端服务状态的吧。location 没指定 index 和 root 的话好像是会继承上一级的
    MonoLogueChi
        11
    MonoLogueChi  
       2019-11-26 23:27:31 +08:00 via Android
    盲猜是 .net 程序,你看看是不是有人直接访问了你的 5000 端口,可以尝试直接在防火墙关闭 5000 端口,或者让后端程序只监听本地回环,再或者使用 unix 套接字代替 TCP 回环测试一下
    cnrting
        12
    cnrting  
       2019-11-27 08:23:43 +08:00 via iPhone
    应该是文件所在目录没有权限,我记得好像我也遇到过
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   961 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:17 · PVG 04:17 · LAX 12:17 · JFK 15:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.