단계별 튜토리얼로 바로 이동할 수 있습니다…
이 설치 방법은 공식적으로 권장되지 않습니다. 사용에 따른 모든 책임은 사용자에게 있습니다.
Discourse 팀은 공식 설치 가이드 를 사용하여 설치하는 것을 권장합니다.
이는 지원되지 않는 설치 방식이며, CloudPanel에 익숙하고, 경험이 있는 시스템 관리자이며, Docker와 리버스 프록시에 친숙하며, 표준 설치를 성공적으로 완료한 사용자에게 적합합니다.
CloudPanel을 사용하는 이유
CloudPanel 이 설치된 VPS 또는 전용 서버에 Discourse 포럼을 설치하고 싶은 이유는 무엇일까요?
저의 이유는 다음과 같습니다:
서버 및 사이트 관리에는 그래픽 인터페이스를 선호합니다. 웹 호스팅 제어 패널 중 대부분을 한때는 사용해 본 경험이 있습니다.
나머지 패널들과 비교했을 때, CloudPanel은 매우 슬림하고 미니멀 하며 깔끔합니다 . 제가 필요한 모든 기능이 매우 단순하고 직관적으로 제공되며,…
저의 (Hetzner) 전용 서버에는 새 Discourse 인스턴스를 설치했습니다 (현재 서버에는 이 것만 설치되어 있습니다).
이제 CloudPanel 을 리버스 프록시로 사용하여, 일부 클라이언트를 위해 Ghost 블로그와 WordPress 사이트도 이 서버에서 호스팅할 수 있도록 하려고 합니다.
이 튜토리얼 을 읽고 아래에 있는 다른 게시물들도 살펴본 결과, 가능한 것으로 보입니다.
하지만 리버스 프록시 관련 학습 곡선 때문에 고전하고 있습니다.
CloudPanel을 사용하여 사이트를 쉽게 설치하고 관리할 수는 있습니다.
하지만 CloudPanel이 Discourse와 잘 작동하도록 만드는 올바른 순서나 절차가 무엇인지 명확하지 않습니다.
이 게시물에 해당 절차를 문서화하고 싶습니다.
누군가 이 과정을 안내해 주실 수 있을까요?
https://www.wpdoze.com/cloudpanel-as-a-reverse-proxy-for-docker/
If you want to run other websites on the same machine as Discourse, you need to set up an extra NGINX or HAProxy proxy in front of the Docker container.
NOTE: This is for advanced admins
This guide assumes you already have Discourse working - if you don’t, it may be hard to tell whether or not the configuration is working.
You cannot use ./discourse-setup to set up Discourse if another server is using port 80 or 443. You will need to copy and edit samples/standalone.yml with your favorite tex…
수정: @pfaffman 님이 @tophee 님이 이전에 작성한 내용을 기반으로 이 내용을 독립적인 주제로 다시 작성했습니다. 아직 제가 테스트를 해보지 않았고, Chris의 문구를 여기저기 이동했으므로, 실수가 있다면 대부분 @pfaffman 님의 책임일 가능성이 높습니다.
Run other websites on the same machine as Discourse 에 설명된 대로 수동으로 처리하는 대신 NGINX Proxy Manager 를 사용해야 할 이유가 없다면요?
저는 이미 이를 사용하고 있습니다. 개인 서버에 꽤 오랫동안 사용하다가 Discourse 인스턴스를 새로운 클라우드 서버로 이전했을 때, 4년 전 구 서버에서 설정했던 NGINX 리버스 프록시 설정의 대부분을 잊어버렸다는 것을 깨달았습니다. 그래서 "NGINX Proxy Manager로 하면 어떨까?"라고 생각했죠. 놀랍게도 메타 포럼에서 이 도구가 언급되는 경우가 드물다는 것을 알게 되었고, 제가 놓친 단점…
pfaffman
(Jay Pfaffman)
5월 18, 2023, 7:44오전
2
먼저 해당 가이드 중 하나를 따라 Discourse를 다른 포트로 이동하고 SSL 및 Let’s Encrypt 템플릿을 제거한 후 다시 빌드하세요. 그런 다음 리버스 프록시가 해당 포트를 사용하도록 설정하세요.
CloudPanel을 먼저 설치하고 인터페이스에서 리버스 프록시를 생성하면…
… 그리고/또는 Vhost Editor에서…
… 이렇게 하면 Discourse를 설치할 수 있을까요?
아니면, Discourse를 먼저 설치하는 것이 필수적이거나 더 나은 방법일까요?
(나 같은 초보자에게도) 가장 단순하고 직관적인 방법의 단계들을 알려주셨으면 좋겠습니다.
Jagster
(Jakke Flemming)
5월 18, 2023, 10:30오전
4
중요하지 않습니다. 다음 조건만 충족되면 됩니다.
Discourse가 80/443 포트를 사용하지 않아야 합니다. 포트 충돌은 리버스 프록시를 충돌시킵니다.
Discourse는 SSL을 사용하지 않아야 하며, 리버스 프록시가 백엔드에 연결하는 포트(80)를 그대로 노출해야 합니다.
따라서 중요하지 않다 는 말은, 리버스 프록시를 시작하기 전에 Discourse를 백엔드로 설정해 두어야 한다는 뜻이며, 그 시점에 Discourse에 일시적으로 접근할 수 없어야 합니다.
pfaffman
(Jay Pfaffman)
5월 18, 2023, 11:06오전
5
단순한 사람들을 위한 설정은 아닙니다. 리버스 프록시가 어떻게 작동하는지, 그리고 디스코스를 수동으로 구성하는 방법을 모두 이해해야 합니다. 간단하거나 직관적이지 않을 것입니다.
초보자를 위한 표준 설치만 지원해도 충분히 어렵습니다. 시스템 관리에 대해 아무것도 모르는 사람들을 위해 해당 지침이 작동하도록 수많은 시간이 투입되었습니다.
시스템 관리에 대해 아무것도 모르는 사람들이 그 지침을 따를 수 있도록 수많은 시간이 투입되었습니다.
@pfaffman 앞으로 그 시간을 줄이는 데 도움이 될 수 있기를 바랍니다!
containers/app.yml 파일은 설치 프로그램이 생성하는 파일인가요? (저장소 에서 해당 파일을 찾을 수 없습니다.)
standalone.yml 파일을 수정하고 이름을 app.yml로 변경했습니다.
이 파일을 containers/ 폴더에 넣고 ./discourse-setup을 실행하면 정상적으로 작동할까요?
(제 app.yml 설정이 올바르게 구성되었다는 전제 하에)
Stephen
(Stephen)
5월 19, 2023, 2:02오전
8
그렇습니다.
Discourse에 비교적 새로 합류한 입장에서는, 이를 올바르게 수행하는 방법은 다음과 같습니다:
리버스 프록시를 일시적으로 비활성화합니다.
SSL/Lets Encrypt를 비활성화한 상태로 Discourse를 설치합니다.
:80 포트에서 설치된 것이 정상적으로 작동하는지 확인합니다.
discourse 포트가 81 또는 다른 비표준 포트가 되도록 변경하거나, 더 나은 방법으로는 소켓을 사용합니다.
리버스 프록시를 다시 실행하고, Discourse 설치 환경(HTTPS 캡슐화를 포함하여)에 맞게 구성합니다.
force_https를 활성화합니다.
리버스 프록시가 가동된 상태에서 Discourse를 설치하지 않으면, 실제로 문제를 추적하고 해결하기가 너무 어려운 영역이 많아집니다.
pfaffman
(Jay Pfaffman)
5월 19, 2023, 10:04오전
9
귀하의 환경에서는 discourse-setup을 사용할 수 없습니다. 수정했다면 다음을 실행하세요.
./launcher rebuild app
기적 중의 기적 – 해냈어요! 도와주셔서 정말 감사합니다. 위 주제 게시글에 해당 절차를 문서화하겠습니다.
음, (작은 문제인 것 같은데) 막혀버렸네요…
두 번째 Discourse 인스턴스를 만들려고 app2.yml 을 만들고 수정하고, 두 번째 Discourse용 server_name.conf 를 수정해서 DISCOURSE_HOSTNAME과 server_name을 변경했습니다.
그런데… 그러면 app2를 어떻게 빌드하나요? 아래를 시도해 보았는데요:
service nginx restart
./launcher stop app
./launcher rebuild app2
그리고
./discourse-setup (첫 번째 인스턴스를 설치할 때 ./discourse setup을 사용했고, 나중에 app.yml을 다시 수정했는데 첫 번째 인스턴스에서는 잘 작동했습니다.)
이 절차로 두 번째 URL에 Discourse가 생성되긴 했지만, 첫 번째 인스턴스에서 데이터를 가져오는 것처럼 보입니다.
무언가를 제대로 이해하지 못하고 있는 것 같습니다. 두 번째 도메인에 두 번째 사이트를 빌드하는 올바른 방법은 무엇인가요?
Stephen
(Stephen)
5월 20, 2023, 3:05오전
12
리버스 프록시가 두 번째 도메인을 수신하도록 구성되고, 트래픽을 다른 포트에 라우팅하도록 설정되어 있나요?
pfaffman
(Jay Pfaffman)
5월 20, 2023, 10:18오전
13
/var/discourse/standalone라고 적혀 있는 디렉토리를 다른 이름(예: standalone2)으로 변경해야 합니다.
Postgres를 한 번만 실행하기 위해 컨테이너 2개 구성을 사용하는 것이 좋습니다(Docker를 사용한 멀티사이트 구성 에 몇 가지 힌트가 있을 것 같습니다). 하지만 RAM이 충분하다면 크게 신경 쓸 필요는 없습니다.
와. 나 혼자서는 절대 알아낼 수 없었을 거야. 오늘 나의 영웅이시군요.
여기서 나는 (클라이언트를 위해) 크리에이터 유형을 위한 다목적 Discourse 게시 시스템을 프로토타입으로 구축하고 있으며, Ghost를 Discourse에 통합하고 있습니다.
저는 프론트엔드 개발자이고, 이제 시스템 관리(Sysadmin)를 완전히 배워야 합니다.
따라서 멀티사이트와 개별 컨테이너를 모두 구축해야 합니다.
제 서버 구성은 다음과 같습니다:
Hetzner의 전용 서버 (6 CPU 코어, 64 GB RAM, 2x512GB NVMe)
Contabo의 VPS (8 CPU 코어, 30 GB RAM, 200 GB NVMe)
Canapin
(Coin-coin le Canapin)
5월 23, 2023, 7:42오전
16
저는 그 부분에 대해 잘 모르지만, 당신과 다른 분들이 해당 튜토리얼이 신뢰할 수 있다고 생각하신다면, 새로운 #documentation:sysadmin how-to advanced-setup 및 다른 적절한 태그를 자유롭게 사용해 주세요
(당신의 답변은 1개월 후 자동으로 삭제됩니다 )
네, 맞습니다. 두 번째 인스턴스의 경우 (CloudPanel에서 새 사이트를 생성한 후) 다음과 같이 처리하면 작동했습니다:
app2.yml 파일을 수동으로 생성하고 편집하여, 해당 파일의 모든 standalone 인스턴스를 standalone2 로 변경했습니다.
Vhost 파일에서도 standalone 을 standalone2 로 변경했습니다.
./launcher rebuild app2를 실행했습니다.
Cloudflare 캐시를 모두 비우고 nginx를 재시작한 뒤, 서버도 재시작한 것 같습니다.
도움 주셔서 다시 한번 감사합니다.