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

如何在Nginx子目录下反向代理Uptime Kuma?

解决Uptime Kuma反向代理子路径资源404问题

1. 配置Uptime Kuma基础路径

在你的docker-compose.yml中,为Uptime Kuma服务添加BASE_URL环境变量,指定子路径为/kuma:

services:
  kuma:
    image: louislam/uptime-kuma:1
    environment:
      - BASE_URL=/kuma
    # 保留原有端口、卷挂载等配置

该环境变量会让Uptime Kuma前端生成的所有资源链接自动带上/kuma前缀,比如原本的/assets/index-ba0179be.js会变为/kuma/assets/index-ba0179be.js。

2. 调整Nginx代理配置

替换原有Nginx配置为以下内容:

upstream kuma {
    server kuma:3001;
}

# 匹配带斜杠的/kuma路径
location ^~ /kuma/ {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    
    # WebSocket支持配置
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    
    # 移除/kuma前缀后转发到Kuma服务
    proxy_pass http://kuma/;
}

# 处理不带斜杠的/kuma请求,重定向到带斜杠路径
location = /kuma {
    return 302 /kuma/;
}

配置说明:

  • ^~ /kuma/使用前缀匹配,优先级高于正则匹配,避免和其他规则冲突
  • proxy_pass http://kuma/末尾的斜杠会自动移除请求路径中的/kuma前缀,正确转发到Kuma服务根路径
  • 新增X-Forwarded-Proto头,让Kuma识别当前请求协议
  • 重定向不带斜杠的请求,避免路径匹配异常

3. 重启服务

修改配置后,重启相关容器生效:

docker-compose restart kuma nginx

此时访问http://localhost/kuma会自动重定向到http://localhost/kuma/,所有资源都会以/kuma/assets/...路径请求,不再出现404错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:10:02