이주(migration)를 위해 사이트를 스테이징하는 경우처럼, 아직 일반 대중이 Discourse 인스턴스에 접근할 수 없기를 원할 수 있습니다.
참고: 최근 basic-auth를 사용할 때 일부 정적 자산(static assets)이 로드되지 않는 문제를 겪었습니다. app.yml의 env 섹션에 DISCOURSE_LOGIN_REQUIRED: true를 추가하여 사이트를 login_required로 설정하는 것이 더 쉽습니다.
다음 설정을 적용하면 모든 방문자에게 사용자 이름과 비밀번호를 묻는 간단한 브라우저 확인 대화상자가 표시됩니다. 사이트를 액세스하려면 이 인증이 필요합니다.
참고: 사용자는 여전히 일반적인 Discourse 가입 및 로그인 절차를 수행해야 합니다.
basic auth 자격 증명
암호화된 비밀번호 생성
htpasswd -bn =username= =password=
참고: 이를 위해 htpasswd가 필요합니다. Ubuntu/Debian의 경우 apache2-utils 패키지에 포함되어 있습니다. htpasswd가 설치된 다른 머신에 액세스 권한이 있다면, 그곳에서 실행하면 됩니다. 검색 엔진을 차단하는 것이 유일한 목적이라면, 여기 예시 비밀번호를 사용하는 데 아무런 문제가 없습니다.
암호화된 사용자 이름/비밀번호는 여기에 입력
app.yml에 추가
# basic auth
after_bundle_exec:
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "# auth_basic on"
to: "auth_basic on"
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "# auth_basic_user_file /etc/nginx/htpasswd"
to: "auth_basic_user_file /etc/nginx/htpasswd"
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "location = /srv/status {"
to: "location = /srv/status {
auth_basic off;"
- file:
path: "/etc/nginx/htpasswd"
contents: |
=auth_string=
after_bundle_exec 섹션은 discourse 컨테이너 내부의 nginx 설정을 변경합니다. 라이브로 전환할 준비가 되면 이 섹션을 삭제하고 다시 빌드하면 됩니다.