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

Dozzle配置Nginx反向代理后/api路径404错误求助

解决方案

1. 正确配置Dozzle的BASE_PATH环境变量

修改你的dozzle-compose.yml,添加DOZZLE_BASE_PATH环境变量,指定根路径为/dozzle:

version: "3"
services:
  dozzle:
    container_name: dozzle
    image: amir20/dozzle:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - 8081:8080
    environment:
      # DOZZLE_AUTH_PROVIDER: simple
      DOZZLE_ENABLE_ACTIONS: true
      DOZZLE_BASE_PATH: /dozzle  # 添加这一行

2. 简化Nginx配置(移除不必要的sub_filter)

Dozzle会自动基于BASE_PATH生成所有路径前缀,因此Nginx无需再做内容替换,调整后的配置如下:

location /dozzle/ {
    rewrite ^/dozzle(/.*)$ $1 break;
    proxy_pass http://0.0.0.0:8081;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    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;
    chunked_transfer_encoding off;
    proxy_buffering off;
    proxy_cache off;
}

3. 重启服务使配置生效

  • 重启Dozzle容器:
docker-compose down && docker-compose up -d
  • 重启Nginx服务:
sudo systemctl restart nginx

问题原因分析

之前的问题核心在于:

  • 仅用Nginx的sub_filter无法覆盖所有动态生成的API请求(比如JS中通过变量拼接的API路径),导致部分请求仍直接访问/api/而非/dozzle/api/。
  • 若之前尝试设置BASE_PATH但未生效,大概率是配置未正确添加到环境变量,或是容器未重启加载新配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:55:14