You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

访问localhost:80显示Nginx默认页面而非Express应用的问题排查求助

排查 & 解决访问Nginx默认页面的问题

遇到这种情况,大概率是Nginx没正确加载你的自定义配置,或者配置本身存在匹配问题,我帮你梳理几个最可能的原因和对应的解决步骤:

1. Nginx默认配置文件仍在生效

Nginx默认自带default.conf(部分环境是sites-enabled/default),如果这个默认配置的优先级比你的自定义配置高,请求会被它先拦截处理。

  • 排查方式:进入Nginx容器,执行ls /etc/nginx/conf.d/或ls /etc/nginx/sites-enabled/,确认是否存在default.conf这类默认配置文件。
  • 解决方法:删除默认配置文件;或者在你的自定义配置里,把server_name改成localhost app.dev www.app.dev,让localhost的请求也能匹配到你的配置块。

2. 自定义配置文件未被Nginx识别加载

Nginx默认只会读取/etc/nginx/conf.d/*.conf格式的文件,如果你的配置文件名没有以.conf结尾,就不会被加载。

  • 排查方式:进入容器查看/etc/nginx/conf.d/目录下的文件,确认你的配置文件(比如app.conf)存在且后缀正确;同时执行nginx -t检查配置语法,有错误会直接提示。
  • 解决方法:将配置文件重命名为.conf后缀(比如app.conf);如果有语法错误,根据nginx -t的提示修正配置内容。

3. Server_Name与访问地址不匹配

你的Nginx配置里server_name设的是app.dev www.app.dev,但你访问的是localhost,Nginx找不到匹配的server块,就会用第一个默认的server块(也就是显示默认页面的那个)来处理请求。

  • 解决方法:修改server_name为localhost app.dev www.app.dev,让localhost的请求也能匹配到你的配置;或者在本地hosts文件里把app.dev指向127.0.0.1,之后访问app.dev而非localhost。

4. Docker卷挂载出现问题

你的Docker Compose配置里,把./nginx/config挂载到了容器的/etc/nginx/conf.d,如果本地./nginx/config目录为空、或者路径写错,容器里的conf.d就没有你的配置文件,Nginx自然会用默认配置。

  • 排查方式:执行docker exec -it nginx ls /etc/nginx/conf.d/,查看容器内该目录是否有你的配置文件;同时检查本地./nginx/config路径是否正确、里面是否存在配置文件。
  • 解决方法:确保本地./nginx/config目录下有你的Nginx配置文件,并且Docker Compose的挂载路径无误。

5. Nginx容器启动时配置加载失败

如果你的配置存在语法错误,Nginx启动时加载会失败,这时它会 fallback到默认配置。

  • 排查方式:查看Nginx容器日志,执行docker logs nginx,里面会显示配置加载失败的具体原因。
  • 解决方法:根据日志提示修正配置,比如检查proxy_pass地址是否正确(你的配置里http://app:3000是没问题的,因为app服务和Nginx在同一个elk网络),或者gzip相关配置有没有语法问题。

另外,修改配置后记得重启Nginx容器:docker-compose restart nginx,确保新配置生效。

内容的提问来源于stack exchange,提问作者Kosmylo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 21:52:32