잘못된 섹션에 글을 올린 것이라면 죄송합니다.
저는 Oracle Free tier를 서버로 사용 중이며, Ubuntu에 몇 개의 Docker 컨테이너를 실행하고 있습니다.
모든 컨테이너에 대해 Caddy를 rproxy로 사용하고 있는데, 이 역시 Docker로 실행하고 있습니다.
이제 퍼즐의 마지막 조각인 Discourse를 설정해야 하는데, 어떻게 진행해야 할지 잘 모르겠습니다.
다른 테스트 서버에서 표준 Docker 설치 방식으로 Discourse를 테스트하고 설치해 보았지만, 이는 전체 패키지를 포함하고 있습니다. Caddy를 rproxy로 사용하려면 일부 기능을 비활성화해야 하는 것 같습니다.
혹시 방향을 잡아주실 수 있다면 정말 감사하겠습니다.
그렇게 하면 올바른 방향으로 나아가는 것 같아요. 다만, 제가 올바른 경로를 가리키고 있는지는 확신이 서지 않네요.
제 app.yml 파일에서는 볼륨을 이렇게 설정해 두었습니다:
그리고 Discourse를 문제 없이 빌드할 수 있습니다.
volumes:
- volume:
host: /opt/docker/docker_configs/discourse/shared/standalone
guest: /shared
- volume:
host: /opt/docker/docker_configs/discourse/shared/standalone/log/var-log
guest: /var/log
그 포럼 스레드를 읽고 나서 Caddyfile에서 몇 가지 시도를 해 봤습니다.
forum.mydomain.com {
reverse_proxy unix//opt/docker/docker_configs/discourse/shared/standalone/nginx.http.sock
import cloudflare
}
forum.mydomain.com {
reverse_proxy /opt/docker/docker_configs/discourse/shared/standalone/nginx.http.sock
import cloudflare
}
두 가지 모두 작동하지 않는데, 제가 제대로 하고 있는 건지 정말로 모르겠네요 xD
Caddy를 어떻게 시작하고 계신가요?
원본 주제에 있는 이 줄은 동작하려면 사용자의 디렉토리에 맞게 조정해야 합니다. Caddy 컨테이너에 올바른 디렉터리가 마운트되지 않으면 Discourse가 생성한 소켓을 인식할 수 없습니다.
아, 말씀하시는 게 discourse의 소켓을 caddy에 마운트해야 한다는 거군요? 그거 말이 되네요!
근데 어젯밤에 다른 방법을 시도해 봤어요.
discourse가 시작되면 docker bridge 네트워크에서 실행되거든요. 제 다른 컨테이너들이(그리고 Caddy도 포함) 있는 docker-default 네트워크를 그대로 추가하면, 다른 컨테이너들과 똑같이 caddy에 간단히 추가할 수 있어요.
forum.mydomain.com {
reverse_proxy app:80
import cloudflare
}
그런데 yml 파일들 중에 docker 네트워크가 어디서 정의되어 있는지 모르겠더라고요. bridge 대신 docker default로 실행되도록 변경할 수만 있으면 제 문제는 전부 해결될 텐데 말이죠.
이 내용이 도움이 될 수 있습니다:
수정: @pfaffman 님이 @tophee 님이 이전에 작성한 내용을 기반으로 이 내용을 독립적인 주제로 다시 작성했습니다. 아직 제가 테스트를 해보지 않았고, Chris의 문구를 여기저기 이동했으므로, 실수가 있다면 대부분 @pfaffman 님의 책임일 가능성이 높습니다.
Run other websites on the same machine as Discourse 에 설명된 대로 수동으로 처리하는 대신 NGINX Proxy Manager 를 사용해야 할 이유가 없다면요?
저는 이미 이를 사용하고 있습니다. 개인 서버에 꽤 오랫동안 사용하다가 Discourse 인스턴스를 새로운 클라우드 서버로 이전했을 때, 4년 전 구 서버에서 설정했던 NGINX 리버스 프록시 설정의 대부분을 잊어버렸다는 것을 깨달았습니다. 그래서 "NGINX Proxy Manager로 하면 어떨까?"라고 생각했죠. 놀랍게도 메타 포럼에서 이 도구가 언급되는 경우가 드물다는 것을 알게 되었고, 제가 놓친 단점…
Nginx Proxy Manager에 대한 내용이지만, 컨테이너를 기본 브리지 네트워크로 가져오는 과정을 설명하고 있습니다.
네! 작동합니다!
몇 가지를 수정해야 했지만, 첫 번째로 링크해 주신 스레드와 거의 비슷합니다.
Caddyfile에는 이렇게 작성해야 했습니다.
스레드에 나와 있는 내용과 약간 다릅니다.
forum.mydomain.com {
reverse_proxy unix//sock/nginx.http.sock
import cloudflare
}
그리고 볼륨을 추가했는데, 지금 생각해 보면 당연한 일이었습니다.
저는 docker-compose를 사용하고 있습니다.
caddy:
container_name: Caddy
build:
dockerfile: ./caddy-config/Dockerfile
context: .
labels:
com.centurylinklabs.watchtower.enable: "false"
ports:
- 80:80
- 443:443
volumes:
- ./docker_configs/caddy/data:/data
- ./docker_configs/caddy/Caddyfile:/etc/caddy/Caddyfile
- ./docker_configs/caddy/srv:/srv
- /var/discourse/shared/standalone:/sock
restart: always
도움 주셔서 정말 감사합니다!
Tinsmith6176:
스레드에 적힌 내용과 조금 다릅니다.
이는 아마도 Caddy 자체의 업스트림 변경 사항 때문일 것입니다. 주제에서 링크된 이미지는 제 기억에 따르면 제공된 구성으로 여전히 작동합니다.