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 · Nov 26, 2019 · 4805 views
    This topic created in 2389 days ago, the information mentioned may be changed or developed.

    配置如下:

    
    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 replies    2019-11-27 08:23:43 +08:00
    eason1874
        1
    eason1874  
       Nov 26, 2019
    你说的程序日志是指什么日志?

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

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