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

Nginx未按独立配置文件规则路由,返回默认404问题求助

解决Nginx未按独立配置路由至Go服务的问题

这种Nginx路由不生效、只返回默认404的情况我碰到过好多次,咱们一步步排查,总能找到问题所在:

1. 确认独立配置文件被Nginx正确加载

很多人会把自定义配置放在/etc/nginx/conf.d/目录下,但首先要确保主配置文件/etc/nginx/nginx.conf里有加载这些文件的语句:

include /etc/nginx/conf.d/*.conf;

如果没有,加上这句话然后保存。之后一定要做两件事:

  • 用nginx -t测试配置语法是否合法,输出test is successful才说明没问题
  • 重载Nginx使配置生效:sudo systemctl reload nginx

2. 检查自定义配置文件的内容是否正确

你的核心需求是把/api路径的请求转发到localhost:8080的Go服务,这里最容易踩坑的是proxy_pass的斜杠问题,我给你一个标准的配置示例,你可以对照调整:

server {
    listen 80;
    server_name localhost; # 换成你的域名或者保持localhost

    location /api {
        # 注意末尾的斜杠:如果你的Go服务处理的是根路径(比如GET /返回响应),就加斜杠;如果处理的是/api开头的路径,就去掉斜杠
        proxy_pass http://localhost:8080;
        # 以下是必要的代理头,确保Go服务能正确获取请求信息
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 默认路径的处理(可选,根据你的需求调整)
    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
}

举个例子:如果你的Go服务的接口是GET /api/hello,那proxy_pass就不要加斜杠;如果Go服务的接口是GET /hello,那proxy_pass要写成http://localhost:8080/(末尾加斜杠),这样Nginx会把/api/hello转发成http://localhost:8080/hello。

3. 排查默认配置的冲突

Nginx默认的default.conf(通常在/etc/nginx/conf.d/下)可能会拦截你的请求,尤其是如果它设置了listen 80 default_server,这时候Nginx会优先用这个默认配置处理请求。解决方法很简单:

  • 把默认配置重命名禁用:sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
  • 然后再次重载Nginx:sudo systemctl reload nginx

4. 验证Go服务本身是否正常

先排除后端服务的问题,直接用curl测试Go服务:

curl http://localhost:8080/api # 或者对应你的接口路径

如果返回预期的响应,说明服务没问题;如果返回404,那你需要先调整Go服务的路由配置,再回来排查Nginx。

5. 查看Nginx日志找线索

如果上面的步骤都没解决问题,就去看Nginx的日志:

  • 访问日志:/var/log/nginx/access.log,可以看到请求的路径、状态码,确认请求是不是真的走到了你的/api location
  • 错误日志:/var/log/nginx/error.log,里面会记录配置错误、连接后端失败等问题,比如如果看到connection refused,说明Nginx连不上8080端口,可能Go服务没启动或者端口不对

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:28:39