参考资料

  1. AWStats 是一款功能强大的免费工具
  2. GoodNotes是一款专为 iPa d 和 Mac 设计的 手写笔记应用
  3. ElectronEgg 是一个基于 Electron 框架的开源桌面应用开发工具,旨在简化跨平台桌面应用的开发流程。
  4. mtab书签是一款基于Web的个人书签管理工具
  5. Docsify是一个动态生成文档网站的工具
  6. Umami 是一款注重隐私、开源且支持自托管的网站分析工具
  7. RuoYi AI 是一套基于人工智能技术的开源系统
  8. Betteryeah 是一款高效的开源工具,专注于优化工作流程和提升生产力。

解决 Umami 部署时 Nginx 反向代理出现空白页面的问题

解决 Umami 部署时 Nginx 反向代理出现空白页面的问题

当在 Docker 中部署 Umami 并通过 Nginx 设置反向代理时出现空白页面,可能是以下几个原因导致的:

常见原因及解决方案

1. 代理配置不正确

确保你的 Nginx 配置包含必要的代理设置:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://umami-container:3000;
        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;
    }
}

2. Umami 的 BASE_URL 环境变量未设置

在 Docker 中运行 Umami 时,需要设置正确的 BASE_URL:

docker run -d \
  --name umami \
  -p 3000:3000 \
  -e DATABASE_URL=your_database_url \
  -e BASE_URL=https://yourdomain.com \  # 必须与访问的域名一致
  ghcr.io/umami-software/umami:latest

3. WebSocket 连接问题

如果使用 WebSocket,需要添加额外的代理头:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

4. 静态资源路径问题

确保静态资源路径正确:

location / {
    proxy_pass http://umami-container:3000;
    # 其他代理设置...
    proxy_set_header X-Forwarded-Prefix /;
}

5. 检查 Umami 容器日志

查看 Umami 容器日志以获取更多信息:

docker logs umami-container

6. 检查 Nginx 错误日志

查看 Nginx 错误日志:

tail -f /var/log/nginx/error.log

完整示例配置

server {
    listen 80;
    server_name analytics.yourdomain.com;

    location / {
        proxy_pass http://umami:3000;
        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;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

如果问题仍然存在,请提供更多细节,如你的 Nginx 配置、Docker 运行命令和容器日志,以便进一步诊断问题。