配置Nginx反向代理让Docker版Plausible运行在域名子目录的故障排查
解决方案
该问题核心是Plausible服务默认基于根路径生成内部跳转地址、静态资源引用路径,单纯调整Nginx反向代理规则无法覆盖应用内部的硬编码路径逻辑,需要先调整Plausible自身配置,再配合Nginx规则即可解决。
步骤1:调整Plausible Docker配置
修改Plausible的docker-compose.yml配置文件,在环境变量段新增BASE_URL配置,值为实际的子目录访问地址:
services: plausible: image: plausible/analytics:latest environment: # 替换为自身实际的子目录访问地址 - BASE_URL=https://app.mydomain.com/plausible # 其余原有环境变量保持不变
修改完成后执行docker compose up -d重启Plausible容器生效。
步骤2:调整Nginx反向代理配置
替换原有配置为以下内容:
location ^~ /plausible { proxy_pass http://localhost:8000; 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; proxy_cache_bypass $http_upgrade; # 自动修正服务返回的重定向地址 proxy_redirect / /plausible/; }
修改完成后执行nginx -s reload重载Nginx配置,清除浏览器缓存后即可正常通过子目录访问Plausible服务。
内容的提问来源于stack exchange,提问作者Martei
相关产品推荐
相关产品推荐

