我在 DigitalOcean Droplet 上部署 Discourse 时遇到了一个奇怪的混合内容错误:
SSL 部分由 DigitalOcean 和 Cloudflare 处理,因此这并非通过 Discourse 或基于 Nginx 的反向代理配置。Nginx 仅将传入请求转发到运行 Discourse 的 Docker 容器:
server {
listen 80; listen [::]:80;
server_name mysite.org;
location / {
proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
除这一个文件外,所有资源似乎都能通过 HTTPS 正常加载。通过进入应用并搜索 PostgreSQL 数据库,我发现问题出在文件 /images/discours.png 上。我曾尝试删除该文件及其在 PostgreSQL 数据库中的所有引用,以彻底避免加载此图片,但显然 Discourse 在重建应用时会自动重新添加该图片(至少我是这么认为的)。
希望有人能提供一些建议。
