你好,
当我在浏览器中输入例如 “thenameofmywebsite.com” 时,它没有自动跳转到安全的 SSL https。
在 Discourse 中,我可以在哪里更改此设置?谢谢。
Discord 是另一款产品,我猜您指的是 Discourse。
您是如何配置 SSL 的?这个实例是如何安装的?
如果您遵循了标准指南,那么 HTTPS 重定向会按默认方式工作。这表明您要么是通过其他方法安装的,要么是在安装后修改了配置。
抱歉,打错字了。
这是我的 discourse.conf 文件内容:
server {
if ($host = wolcengame.net) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name wolcengame.net www.wolcengame.net;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wolcengame.net www.wolcengame.net;
所以 https://wolcengame.net 和 www.wolcengame.net 之间存在差异。第一个链接可以正常工作并加载页面,但点击第二个链接时,它会跳转到 https://www.wolcengame.net,然后显示黑屏,没有任何内容加载。
我不知道问题出在哪里,也不知道该如何修复。
删除这部分,然后重启 Nginx,应该就能正常工作了。
我觉得没有任何变化。问题仍然存在。还有其他建议吗?
该配置可以通过多种方式更改。
你好,Bhanu。
DISCOURSE_HOSTNAME: wolcengame.net
我还有另一个网站,其配置与我的 discourse.conf 相同,但那里没有类似的问题。
我的问题是:Discourse 是否有某些内容干扰了 Nginx 的重定向?我昨天尝试了所有方法,但已经想不出其他解决办法了。
这是我的第二个网站 www.koktailmolotov.com。如您所见,如果您点击该网站,它会自动重定向到 https://koktailmolotov.com 格式。其配置文件设置与我的 Discourse 网站完全相同。
这不可能,因为所有流量都由外部 nginx 处理。我假设您正在使用套接字模板运行 Discourse,并且外部 nginx 代理正在处理所有流量。
如果您能发布 Discourse 的 nginx 配置,我或许能帮您找出问题所在。
以下是今天完整的 discourse.conf nginx 配置:
server {
listen 80; listen [::]:80; server_name www.wolcengame.net; return 301 $scheme://wolcengame.net$request_uri;}
server {
listen 443 ssl http2; listen [::]:443 ssl http2; server_name wolcengame.net www.wolcengame.net; ssl on; ssl_certificate /etc/letsencrypt/live/wolcengame.net/fullchain.pem; # 由 Certbot 管理 ssl_certificate_key /etc/letsencrypt/live/wolcengame.net/privkey.pem; # 由 Certbot 管理 ssl_dhparam /etc/letsencrypt/live/wolcengame.net/dhparams.pem; include /etc/nginx/snippets/ssl.conf; http2_idle_timeout 5m; # 从默认的 3m 提升至此 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 https; proxy_set_header X-Real-IP $remote_addr; }}
将其更改为
return 301 https://wolcengame.net$request_uri;
从此处移除 www.wolcengame.net
并创建一个独立的块,如下所示:
listen 443 ssl;
listen [::]:443 ssl;
server_name www.wolcengame.net;
ssl_certificate /etc/letsencrypt/live/wolcengame.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wolcengame.net/privkey.pem;
return 301 https://wolcengame.net$request_uri;
需要明确的是,这根本不是 Discourse 的问题。
Discourse 只能在一个完全限定域名(FQDN)下运行。问题在于你配置了两个域名,且未正确配置重定向。这两个问题的解决方案在其他主题中已经解答过了。
您真是个天才,这解决了问题。非常感谢您。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.