参考资料

  1. Umami 是一款注重隐私、开源且支持自托管的网站分析工具
  2. Codapp是一款低代码开发平台
  3. ElectronEgg 是一个基于 Electron 框架的开源桌面应用开发工具,旨在简化跨平台桌面应用的开发流程。
  4. 微信 Markdown 编辑器
  5. 网站分析工具 Umami 的详细分析
  6. Sigil是一个开源的电子书编辑工具
  7. HIVisionIDPhotos 是一款用于身份证照片处理的软件工具
  8. cremeb 是一个开源的轻量级工具,专注于提供高效的数据处理和分析功能。

解决 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 运行命令和容器日志,以便进一步诊断问题。