이것은 사실이 아닙니다.
- 위에서 댓글로 첨부한 링크들은
git blame에서 가져온 것입니다. 파일의 최신 버전(관련 라인 링크): discourse_docker/templates/web.ssl.template.yml at 247c71a1e45d32b0b814a8e9d5fdaa4faaf727b9 · discourse/discourse_docker · GitHub - 제 친구의 새 사이트 설치는 일주일 전이었습니다. 위의 템플릿 37번째 줄은
return 301 https://${DISCOURSE_HOSTNAME}$request_uri;라고 되어 있지만, Discourse Docker 컨테이너에서 그녀의 (그리고 제)/etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf파일은return 301 https://<our_discourse_site>;라고 되어 있습니다.$request_uri가 제거되어 있는 것을 주목하세요. 무언가가 이를 사라지게 하고 있습니다! (무엇인지 모르겠지만). - 조사 과정의 일환으로 오늘 아침에 강제 갱신을 시뮬레이션했습니다. 실패했습니다. 그런 다음
/etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf를 변경했습니다. 성공했습니다!
사실 이건 괜찮습니다. Discourse를 업데이트할 때마다 20-redirect-http-to-https.conf를 수동으로 편집하면 됩니다. 이 댓글에 부딪히는 분들을 위해, 실행해야 하는 명령어는 다음과 같습니다:
cat > /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf << 'EOF'
server {
listen 80;
listen [::]:80;
location ~ /.well-known {
root /var/www/discourse/public;
allow all;
}
location / {
return 301 https://<YOUR_FORUM_ADDRESS>$request_uri;
}
}
EOF
이 실패의 원인이 무엇인지 완전히 확신은 하지 못하지만, 위의 conf를 수정하면 해결된다는 것은 알고 있습니다. 또한, letsencrypt 갱신이 더 이상 조용히 실패하지 않도록 notifs도 수정했습니다 — 그래서 사전에 몇 가지 경고를 받을 수 있습니다. 알려드리고 싶어서요!