配置如下:
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 / , 程序里我也压根没配 / 的路由
1
eason1874 2019-11-26 14:08:47 +08:00
你说的程序日志是指什么日志?
如果是指 Nginx 那正常,按你这段配置来看,只要你没关日志那么访问 / 也会写入到 access_log。如果你是说 5000 端口程序的日志,那肯定是你搞错了,可能是你改了 Nginx 配置文件没重载还是用的旧配置。 |
2
markgor 2019-11-26 14:17:43 +08:00
@eason1874 LZ 意思是 GET / 默認讀取了 /www/pages/index.html,這個文件也是存在的,但是為什麼 nginx 會有 404 的錯誤日誌
|
4
aoscici2000 OP @eason1874 就是 5000 端口的程序日志记录了下来,所以我才纳闷
|
5
eason1874 2019-11-26 16:07:32 +08:00
@aoscici2000 #4 如果你确认 Nginx 这个配置已经生效,那 / 请求肯定不是 Nginx 这边转发过去的,你可以排查一下其他请求来源,比如你在浏览器打开过后端链接的话,浏览器为了拿个缩略图有可能再向后端发送一个请求。
|
6
ragnaroks 2019-11-26 17:14:02 +08:00
5000 盲猜刀奶扩,我复制你的配置,正常返回 index.html 的内容.
感觉可能是 /www/pages 这个路径,你运行 nginx 的用户没有权限 |
7
Ionstorm 2019-11-26 17:18:48 +08:00
没有 SSL 证书?
|
8
dppd 2019-11-26 17:43:50 +08:00
建议查看下 nginx 日志...别看你程序报什么鬼了
|
9
aoscici2000 OP @dppd ngnix 日志也没什么毛病, 其实运行也很正常, 我只是非常非常好奇程序为什么会记录这条日志, 因为我的理解是只有 /api 的请求才会去到程序那里处理...
|
10
dorothyREN 2019-11-26 22:44:37 +08:00
nginx 需要检测后端服务状态的吧。location 没指定 index 和 root 的话好像是会继承上一级的
|
11
MonoLogueChi 2019-11-26 23:27:31 +08:00 via Android
盲猜是 .net 程序,你看看是不是有人直接访问了你的 5000 端口,可以尝试直接在防火墙关闭 5000 端口,或者让后端程序只监听本地回环,再或者使用 unix 套接字代替 TCP 回环测试一下
|
12
cnrting 2019-11-27 08:23:43 +08:00 via iPhone
应该是文件所在目录没有权限,我记得好像我也遇到过
|