我一直遇到混合内容错误,需要帮助解决。\n\n我正在使用 Nginx(运行在 AlmaLinux 9.4 上)来反向代理 Discourse(标准 Docker 版本 26.1.3,构建 b72abbb 安装),Discourse 运行在 Ubuntu 22.04 上)。如果我设置 force https,我将无法登录。情况与之前的帖子中描述的相同。\n\n我正在寻找一种系统的方法将这个问题分解成可管理的部分。您的指导和见解在这个过程中将非常有价值。\n\nDiscourse 是一款令人印象深刻的软件。它正在将讨论转化为知识,为越来越多的公司服务,包括我们这个小型研究中心。我们已经测试了几个月,尽管遇到了一些问题,但在您的帮助下我们都克服了。\n\n我想提议将其作为我们文明讨论的标准,但在那之前,我必须解释为什么我无法解决一些看似简单的问题,比如这个问题。您的帮助将非常受欢迎!感谢您的帮助!
此主题解决了如何强制使用 HTTPS 以及登录和其他所有操作的运行问题,至少在我目前测试的范围内是这样。
不过,我仍然收到一些混合错误消息。我将继续调查并更新此主题。
谢谢!
Stopper 1 已解决!所有浏览器(我尝试了 macOS 上的 Firefox、Opera 和 Safari)都不会再显示混合内容消息。Nginx 反向代理中的此更改也解决了我在帖子 回复主题时遇到问题 中描述的问题。
作为参考,我还附上更新后的 Nginx conf 文件:
server {
server_name forum.igfae.usc.es;
location / {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://172.16.57.96";
}
listen 443 ssl; # 由 Certbot 管理
ssl_certificate /etc/letsencrypt/live/forum.igfae.usc.es/fullchain.pem; # 由 Certbot 管理
ssl_certificate_key /etc/letsencrypt/live/forum.igfae.usc.es/privkey.pem; # 由 Certbot 管理
include /etc/letsencrypt/options-ssl-nginx.conf; # 由 Certbot 管理
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 由 Certbot 管理
}
server {
if ($host = forum.igfae.usc.es) {
return 301 https://$host$request_uri;
} # 由 Certbot 管理
server_name forum.igfae.usc.es;
listen 80;
return 404; # 由 Certbot 管理
}
在创建此帖子时,Nginx/1.20.1 作为反向代理运行在 AlmaLinux release 9.4 (Seafoam Ocelot) 服务器上。
Discourse 3.3.0.beta3-dev 运行在 Docker version 26.1.3, build b72abbb 上,位于 Ubuntu 22.04.4 LTS 机器上。
<meta name="generator" content="Discourse 3.3.0.beta3-dev - https://github.com/discourse/discourse version 625c71585623d891751b8abd291337fda3724947">
感谢大家!
尝试将其硬编码为 https:
proxy_set_header X-Forwarded-Proto https;
我一直难以理解这个提议。如果 $scheme 有效,为什么我们要尝试将其硬编码为 https?谢谢!
我没怎么看清楚。
1 个赞
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.