解决 Umami 部署时 Nginx 反向代理出现空白页面的问题
2025-07-31
5
参考资料
解决 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 运行命令和容器日志,以便进一步诊断问题。