사이트 전환 단계를 위한 단일 사이트의 여러 호스트 이름

여러 호스트명을 설정하는 것은 불가능하거나 지원되지 않는다는 것을 알고 있습니다(멀티사이트만 지원). 적어도 이 이슈에서는 그렇게 되어 있습니다: How can I use multiple hostnames - support - Discourse Meta

하지만 현재에도 여전히 그런가요? 제 경우에는 리다이렉트가 도움이 되지 않습니다(단순하고 임시적인 용도를 위해 복잡한 리버스 프록시 재작성을 하고 싶지는 않습니다): 제 경우 기존 서버와 병렬로 새로운 discourse 서버를 설치하고, 새로운 이름으로 이 서버의 스테이징 뷰를 가지는 것입니다. 하지만 DNS 전환이 일어나거나 관리자가 /etc/hosts 별명을 사용할 때를 위해 서버가 공식 이름도 받아들이도록 해야 합니다. 이렇게 하면 스테이징 단계가 크게 개선될 것입니다.

현재 주요 문제는 절대 CSP URL이 이 작업을 방해한다는 점입니다(다만 프로토콜을 이미 확인하고 있으므로, 허용된 호스트 목록에서 호스트명을 확인하도록 확장할 수 있어야 합니다). 그래서 이 기능이 현재 이용 가능한가요?

참고로 제 경우 http로 테스트하고 있지만, 여러 인증서를 요청하는 letsencrypt 설정은 이미 여기에서 다루고 있다고 생각하므로, 나중에 그 작업을 수행할 수 있을 것입니다. (어쨌든 올바른 공식 별名下에서 사용 가능할 때까지는 작동하지 않습니다)

참고로, DISCOURSE_HOSTNAME을 다르게 설정하고 앱 컨테이너를 재빌드하는 것이 작동하지 않는다는 것을 방금 깨달았습니다. 데이터베이스 어딘가에도 저장되어 있을 것 같지만, 관리자 설정에서는 변경할 수 없습니다.

이로 인해 이러한 시나리오에서 허용된 호스트 목록을 갖는 것이 다소 중요해집니다.

호스트 이름 변경에 대한 주제가 있습니다. 도메인 이름 변경 또는 Discourse 이름 변경

여러 이름이 해석되도록 하고 Discourse가 올바른 이름으로 리다이렉트되기를 원한다면, http의 경우 이미 준비가 된 상태입니다. https의 경우 모든 도메인에 대한 인증서를 발급받아야 합니다. 여러 도메인으로 Let’s Encrypt 설정하기가 도움이 될 것이라고 생각합니다.

사이트가 자체적으로 리다이렉트되지 않도록 하려면 nginx를 조정하여 해당 리다이렉트를 수행하지 않도록 할 수 있습니다. 다만, 어떻게 해야 하는지 설명해 드리는 방법은 정확히 모르겠습니다.

호스트 이름 변경 주제가 제게는 신뢰할 수 없게 작동합니다(예를 들어 remap+rebake를 수행했음에도 불구하고 환영 게시물의 트위터 이모티콘이 잘못된 서버를 가리킴). 그 이유를 조사하지는 않았지만(알려드리겠습니다), 적어도 매끄럽지는 않습니다.

제 사용 사례에 대한 리디렉션은 구 서버로 리디렉션되므로 작동하지 않습니다.

nginx 설정은 변경이 필요 없으며 호스트 이름을 인식하지 못합니다. 그러나 문제는 앱 쪽에 더 있으며, 예를 들어 CSP 헤더에는 전체 URL이 포함되어 있습니다(이유를 모릅니다).